Gait generating device of legged mobile robot and legged mobile robot controller

ABSTRACT

A permissible range of a restriction object amount, which is a vertical component of a floor reaction force moment or a component of the floor reaction force moment in floor surface normal line direction, or a vertical component of an angular momentum changing rate of the robot or a component of the angular momentum changing rate in floor surface normal line direction, is set, and at least a provisional instantaneous value of a desired motion is input to a dynamic model so as to determine an instantaneous value of a model restriction object amount as an output of the dynamic model. An instantaneous value of a desired motion is determined by correcting the provisional instantaneous value of the desired motion such that at least the instantaneous value of the model restriction object amount falls within the permissible range.

TECHNICAL FIELD

The present invention relates to a gait generating device and a controldevice suited not only to walking but also running of a legged mobilerobot.

BACKGROUND ART

Hitherto, a major object of generating gaits (desired gaits) for makinga legged mobile robot, e.g., a bipedal mobile robot, carry out atraveling motion has been focused mainly on generating gaits (walkinggaits) to make the robot carry out a smooth walking motion. In recentyears, however, as the development of legged mobile robots advances, ithas come to be desired to generate gaits that enable the robots not onlyto walk but to run also. Furthermore, it has come to be desired togenerate gaits that enable the robots to move without trouble even on aslippery floor (so-called low-μ path) on which a sufficient frictionalforce cannot be produced.

Since the Chinese characters for “gait” include a character meaning“walking,” the gait tends to be misinterpreted that the definitionthereof is limited to walking. However, “gait” originally presents aconcept that includes running, as it is used as a term indicating arunning mode of a horse, such as “trot.”

The description will now be given of the difference in characteristicsbetween walking and running.

A traveling mode that has an instant at which all legs aresimultaneously floating is usually defined as running. This definition,however, does not necessarily make it possible to clearly distinguishbetween walking and running. For instance, most humans have instants atwhich all legs float at the same time in fast jogging, whereas manyhumans have one of the legs always in contact with the ground in slowjogging. It is somehow perceptually unreasonable to define fast joggingas running and slow jogging as walking.

FIG. 51 shows a pattern of a vertical body position and a floor reactionforce vertical component (a sum of floor reaction force verticalcomponents acting on right and left legs) in typical running, and FIG.52 shows a pattern of a vertical body position and a floor reactionforce vertical component in typical walking.

A vertical body position/velocity means a vertical position of arepresentative point of a body and a velocity thereof. A horizontal bodyposition/velocity means a horizontal position of a representative pointof the body and a velocity thereof. A vertical body position/velocityand a horizontal body position/velocity together will be referred to asbody position/velocity.

Strictly speaking, the “floor reaction force vertical component” shouldbe described as “translational floor reaction force vertical component”to distinguish it from a moment component about a vertical axis of afloor reaction force; however, the term is too long, so that the term“translational” will be omitted. Hereinafter, the “translational floorreaction force horizontal component” will be described as “floorreaction force horizontal component,” omitting “translational.”

First, attention will be focused on the movement of the body. Inwalking, the body reaches a highest level at the instant the body passesover a supporting leg, while it reaches a lowest level at this instantin running. In other words, the phase of a vertical motion pattern ofthe body reverses between walking and running.

Meanwhile, a floor reaction force remains relatively constant inwalking, whereas it considerably varies in running, the floor reactionforce reaching its maximum at the moment the body passes over asupporting leg. Needless to say, the floor reaction force is zero at theinstant when all legs are simultaneously floating. More detailedobservation reveals that a floor reaction force of a magnitude that issubstantially proportional to a compression amount of the supporting legis generated while running. In other words, it may be said that the legsare used like springs to jump for traveling while running.

Slow jogging has the same body vertical motion phase as that of typicalrunning. In addition, slow jogging frequently has no instants at whichall legs are simultaneously floating; however, even in this case, afloor reaction force reaches substantially zero, although not completelyzero, at an instant when a supporting leg and an idle leg are switched.

Hence, distinguishing between walking and running on the basis of theaforesaid characteristics of the vertical motions of the body or floorreaction force patterns as described above may be more appropriate andperceptually reasonable, because slow jogging is regarded also asrunning.

In particular, to distinguish between the two on the basis of a mostcharacteristic aspect, running may be defined as a traveling mode inwhich the floor reaction force becomes zero or substantially zero at theinstant a supporting leg is switched, while walking may be defined as atraveling mode (a floor reaction force vertical component remainingrelatively constant) other than that.

The present applicant has previously proposed, in PCT Kokai publicationWO/02/40224, an art for generating freely and in real time a gait of alegged mobile robot that includes a floor reaction force whilesubstantially satisfying dynamic balance conditions (This means theconditions of balance among gravity, an inertial force, and a floorreaction force of a desired gait. In a narrow sense, it means that thehorizontal component of a moment about a desired ZMP by the resultantforce of gravity and an inertial force produced by a motion of a desiredgait is zero. Detailed description will be given hereinafter). This artand a series of the control devices of legged mobile robots proposed bythe present applicant in, for example, Japanese Unexamined PatentApplication Publication No. 10-86081 and Japanese Unexamined PatentApplication Publication No. 10-277969 can be applied to walking and alsoto running.

The present applicant has also proposed in PCT/JP02/13784 an art inwhich a dynamic model having high approximation accuracy is used tocorrect a provisional gait such that a translational floor reactionforce horizontal component and a floor reaction force moment horizontalcomponent fall within a predetermined permissible range, therebygenerating a desired gait.

These arts, however, have not considered the magnitude of a floorreaction force moment vertical component about ZMP of a desired gait.Hence, there has been a danger in that the floor reaction force momentvertical component unduly increases and exceeds a frictional limit,leading to a spin. The term “spin” refers to a state in which a yawangle (a rotational angle about a vertical axis) of an actual robotdeviates from a desired yaw angular velocity.

When a robot walks on a floor surface having a high friction coefficient(in this case, at least one leg is always in contact with the ground), afloor reaction force vertical component is always substantiallyequivalent to a robot's own weight, thus providing a higher limit of africtional force (i.e., the floor reaction force moment verticalcomponent). This makes it difficult for a spin to occur.

In running, however, the floor reaction force vertical component becomeszero or substantially zero, and in this case, therefore, the limit of amoment vertical component of the frictional force of a floor surfacebecomes zero or substantially zero even if a friction coefficient ishigh. Hence, there has been a danger in that the floor reaction forcemoment vertical component of a desired gait exceeds a limit, resultingin a spin and a fall.

Further, in the case of walking also, there has been a danger ofspinning and falling if a floor has a low friction coefficient.

Meanwhile, the present applicant has previously proposed an arrangement,in which an arm is swung so as to cancel a moment vertical componentgenerated by anything other than arms in a desired gait, in anembodiment described in, for example, PCT application PCT/JP02/13596.

In this case, the moment vertical component of a desired gait issubstantially zero. However, if legs are briskly swung to move, then thearms will be also briskly swung.

Generally, the mass of an arm in a human-type robot is smaller than themass of a leg. Accordingly, it is necessary to swing arms more brisklythan legs in order to fully cancel a moment vertical component.

However, there is a restriction in the range of arm motion, and thereare also restrictions in torque and velocity of arm actuators. Hence,there have been some cases where a moment vertical component cannot befully canceled by arms when a robot moves while briskly swinging itslegs.

Furthermore, there has been a danger in that, if arms are swung tocancel out a moment vertical component produced by anything other thanarms in a desired gait, then the center of arm swing is graduallyoffset, causing the swings of the right and left arms to beasymmetrical. Specifically, to make a left turn, if a robot swings itsarms to fully offset a moment vertical component generated by anythingother than arms, then the left arm is swung more toward the front andswung less toward the rear, while the right arm is swung less toward thefront and swung more toward the rear in order to offset the change in anangular momentum caused by the legs and the body having turned to theleft. This may cause the left arm to reach a motion limit of the swingtoward the front, and the right arm to reach a motion limit of the swingtoward the rear.

Furthermore, if a motion is made to correct the center of the armswinging so as to prevent the swings of the right and left arms frombecoming asymmetrical, then a floor reaction force moment verticalcomponent is generated. This in turn causes a floor reaction forcemoment vertical component of a desired gait to exceed a limit, possiblycausing the robot to spin.

Accordingly, an object of the present invention is to provide a gaitgenerating device and a control device which solve the problemsdescribed above and which are capable of generating a further ideal gaitregardless of gait types, such as walking and running, and a frictioncondition of a floor surface.

More specifically, an object of the present invention is to provide agait generating device and a control device capable of generating gaitsthat make it possible to prevent a robot from spinning or falling from aspin, considering limitation of a moment vertical component of the forceof a friction between the robot and a floor surface. Another object isto provide a gait generating device and a control device capable ofgenerating a gait motion pattern that satisfies a dynamic balancecondition even in a leg-floating period or even if the limit of a momentvertical component of a frictional force is extremely low. Still anotherobject is to prevent lateral asymmetry of a desired gait from increasingso as to secure continuity of a motion.

DISCLOSURE OF INVENTION

According to a first invention of a gait generating device of a leggedmobile robot in accordance with the present invention,

there is provided a gait generating device for generating a desired gaitof a legged mobile robot that travels by moving a plurality of legsextended from its body, comprising:

permissible range setting means for setting a permissible range of arestriction object amount, the restriction object amount being avertical component of a floor reaction force moment or a component ofthe floor reaction force moment in floor surface normal line direction,or a vertical component of an angular momentum changing rate of therobot or a component of the angular momentum changing rate in floorsurface normal line direction, to be applied to the robot;

provisional instantaneous value determining means for determining aprovisional instantaneous value of a desired motion constituting thedesired gait;

model calculating means for supplying at least a provisionalinstantaneous value of the desired motion to a dynamic model thatindicates a relationship between a motion of the robot and therestriction object amount so as to determine an instantaneous value of amodel restriction object amount as an output of the dynamic model; and

desired instantaneous value determining means for determining aninstantaneous value of a desired motion by correcting the provisionalinstantaneous value of the desired motion such that at least theinstantaneous value of the model restriction object amount falls withinthe permissible range.

According to the first invention, an instantaneous value of a desiredmotion is determined by correcting the provisional instantaneous valueof the desired motion such that the instantaneous value of the modelrestriction object amount as an output of the dynamic model falls withinthe permissible range. In other words, the provisional instantaneousvalue of the desired motion is corrected such that the instantaneousvalue of the restriction object amount that balances with theinstantaneous value of the desired motion after a correction on thedynamic model falls within the permissible range when the instantaneousvalue of the desired motion after the correction is supplied to thedynamic model. This makes it possible to generate a motion of a desiredgait that allows a restriction object amount, such as a floor reactionforce moment vertical component, to fall within a permissible range.This means that an instantaneous value of a desired motion isdetermined, considering the limitation of a frictional force momentvertical component on the dynamic model. Thus, a desired gait can begenerated that makes it possible to prevent the robot from spinning andfalling caused by the spinning. Moreover, it is not required to alwaysmaintain the restriction object amount to zero or substantially zero aslong as a restriction object amount remains within a permissible range,thus making it possible to generate a desired gait that prevents themotion of a certain part of the robot from becoming unduly intense.

Basically, a dynamic model with high approximation accuracy ispreferably used.

In the first invention, the desired instantaneous value determiningmeans preferably determines an instantaneous value of a floor reactionforce moment that corresponds to a restriction object amount thatsubstantially balances with the instantaneous value of the desiredmotion on the dynamic model as an instantaneous value of a desired floorreaction force moment constituting the desired gait (a secondinvention).

With this arrangement, it is possible to determine an instantaneousvalue of a desired floor reaction force moment with high dynamicaccuracy with respect to an instantaneous value of a desired motion.

In these first and second inventions, the desired instantaneous valuedetermining means preferably comprises a perturbation model representinga relationship between a perturbative motion of the robot and aperturbation portion of a restriction object amount, means fordetermining a perturbation model manipulated variable for manipulatingthe perturbation portion of the restriction object amount of theperturbation model on the basis of at least the instantaneous value of amodel restriction object amount determined by the model calculatingmeans and the permissible range, means for determining a correctionamount of the desired motion by supplying the determined perturbationmodel manipulated variable to the perturbation model, and

means for determining an instantaneous value of the desired motion bycorrecting the provisional instantaneous value of the desired motion onthe basis of the correction amount (a third invention).

In other words, the high linearity of the perturbation model permitseasier calculation processing of a proper correction amount of a desiredmotion to make the restriction object amount fall within a permissiblerange and also permits easier processing of correcting a provisionalinstantaneous value of the desired motion on the basis of the correctionamount.

In the third invention, the means for determining the perturbation modelmanipulated amount preferably comprises means for determining anestimated value of the restriction object amount when it is assumed thatthe perturbation model manipulated amount is zero on the basis of atleast an instantaneous value of a model restriction object amountdetermined by the model calculating means, and means for comparing thedetermined estimated value with the permissible range to determine arestricted restriction object amount that has been restricted to fallwithin the permissible range on the basis of the comparison, wherein theperturbation model manipulated variable is determined on the basis of atleast the difference between the instantaneous value of the modelrestriction object amount determined by the model calculating means andthe restricted restriction object amount (a fourth invention).

According to the fourth invention, an estimated value of the restrictionobject amount when it is assumed that the perturbation model manipulatedamount is zero, that is, when a perturbation portion of a restrictionobject amount additionally generated for correcting a provisionalinstantaneous value of a desired motion on the basis of a perturbationmodel is set to be zero, is determined on the basis of at least theinstantaneous value of the model restriction object amount, and arestricted restriction object amount is determined on the basis of thecomparison between the estimated value and a permissible range. In thiscase, an estimated value of a restriction object amount may bedetermined, considering gyro effect. The restricted restriction objectamount is preferably determined to be a value as close to an estimatedvalue of a restriction object amount as possible within the permissiblerange. And, a perturbation model manipulated variable is determined onthe basis of at least the difference between the instantaneous value ofthe model restriction object amount and the restricted restrictionobject amount. This makes it possible to properly determine aperturbation model manipulated variable that prevents a restrictionobject amount from exceeding a permissible range.

The third invention further preferably comprises means for determining arequired value of the perturbation model manipulated variable on thebasis of at least a state amount of the perturbation model, wherein themeans for determining the perturbation model manipulated variabledetermines a perturbation model manipulated variable to be supplied tothe perturbation model on the basis of at least an instantaneous valueof a model restriction object amount determined by the model calculatingmeans, the permissible range, and the required value (a fifthinvention).

With this arrangement, the perturbation model manipulated variable isdetermined, considering a required value of a state amount of aperturbation model (a rotational angle of a rotor constituting anelement of the perturbation model and an angular velocity thereof, etc.)in addition to the permissible range and the instantaneous value of amodel restriction object amount. This makes it possible to prevent astate amount of the perturbation model from considerably deviating froma state amount corresponding to the required value, thereby preventingan improper correction amount of a desired motion from being determined.

In the fifth invention, the means for determining a required value ofthe perturbation model manipulated variable sequentially determines therequired value according to a feedback control law based on a deviationbetween a state amount of the perturbation model and a desired value forthe state amount (a sixth invention).

According to the sixth invention, a perturbation model manipulatedvariable is determined such that a state amount of a perturbation modelis substantially maintained in the vicinity of a certain desired stateamount. Thus, a correction amount of a desired motion determined by theperturbation model can be set to be ideal for a restriction objectamount to fall within a permissible range while stably maintaining thestate of the perturbation model.

Furthermore, in the fifth and sixth inventions, the means fordetermining the perturbation model manipulated variable comprises meansfor determining an estimated value of the restriction object amount whenit is assumed that the perturbation model manipulated variable has beenmatched with the required value on the basis of at least aninstantaneous value of a model restriction object amount determined bythe model calculating means and the required value and means forcomparing the determined estimated value with the permissible range todetermine a restricted restriction object amount that has beenrestricted to fall within the permissible range on the basis of thecomparison, wherein the perturbation model manipulated variable isdetermined on the basis of at least the difference between theinstantaneous value of the model restriction object amount determined bythe model calculating means and the restricted restriction object amount(a seventh invention).

With this arrangement, first, an estimated value of a restriction objectamount when it is assumed that the perturbation model manipulatedvariable has been matched with the required value, that is, when it isassumed that only the required value has been supplied to a perturbationmodel, is determined on the basis of at least an instantaneous value ofthe model restriction object amount and the required value, and arestricted restriction object amount is determined on the basis of thecomparison between the estimated value and a permissible range. In thiscase, the estimated value of a restriction object amount may bedetermined, considering gyro effect. The restricted restriction objectamount is preferably determined to be a value as close as possible to anestimated value of a restriction object amount within the permissiblerange. And, a perturbation model manipulated variable is determined onthe basis of at least the difference between the instantaneous value ofthe model restriction object amount and the restricted restrictionobject amount. This makes it possible to properly determine aperturbation model manipulated variable that prevents a restrictionobject amount from exceeding a permissible range and also to securestability of the perturbation model.

In the aforesaid fourth to seventh inventions, the desired instantaneousvalue determining means preferably determines an instantaneous value ofa floor reaction force moment corresponding to the restrictedrestriction object amount as an instantaneous value of a desired floorreaction force moment constituting the desired gait (an eighthinvention).

With this arrangement, a restriction object amount corresponding to theinstantaneous value of a desired floor reaction force moment securelyfalls within a permissible range.

In the aforesaid fourth to eighth inventions, the desired instantaneousvalue determining means may comprise means for additionally supplying acorrection amount of the desired motion to the dynamic model (a ninthinvention).

With this arrangement, a correction amount of a desired motion isadditionally supplied to the dynamic model, so that a restriction objectamount balancing with an instantaneous value of the desired motion canbe directly determined from the dynamic model. This permits easierprocessing for determining an estimated value of the restriction objectamount.

In this ninth invention, the desired instantaneous value determiningmeans preferably determines an instantaneous value of a floor reactionforce moment corresponding to the restricted restriction object amountas an instantaneous value of a desired floor reaction force momentconstituting the desired gait (a tenth invention).

With this arrangement, a restriction object amount corresponding to theinstantaneous value of a desired floor reaction force moment securelyfalls within a permissible range.

In the aforesaid third to tenth inventions, the perturbation model ispreferably a model representing a relationship between a perturbativemotion for perturbating a vertical component or a component in floorsurface normal line direction of an angular momentum changing rate ofthe robot and the perturbation portion of a restriction object amount(an eleventh invention).

With this arrangement, a correction amount of a desired motion formaking the restriction object amount fall within a permissible range canbe properly determined.

In the eleventh invention, the perturbative motion is ideally aperturbative motion for maintaining the center-of-gravity position ofthe robot substantially constant (a twelfth invention).

With this arrangement, a correction of a desired motion by aperturbation model can be made without influencing a translational floorreaction force of a robot.

Further, in the aforesaid eleventh and twelfth inventions, theperturbative motion is preferably a perturbative motion of a body of therobot and/or an arm extended from the body (a thirteenth invention).

This arrangement permits easier processing for calculating a correctionamount of a desired motion.

According to a fourteenth invention of a gait generating device of alegged mobile robot in accordance with the present invention,

there is provided a gait generating device for generating a desired gaitof a legged mobile robot that travels by moving a plurality of legsextended from its body, comprising:

permissible range setting means for setting a permissible range of arestriction object amount, the restriction object amount being avertical component of a floor reaction force moment or a component ofthe floor reaction force moment in floor surface normal line direction,or a vertical component of an angular momentum changing rate of therobot or a component of the angular momentum changing rate in floorsurface normal line direction, to be applied to the robot;

desired floor reaction force provisional instantaneous value determiningmeans for sequentially determining a provisional instantaneous value ofat least a desired floor reaction force among a desired motion and adesired floor reaction force constituting the desired gait;

first model calculating means for supplying at least a provisionalinstantaneous value of the desired floor reaction force to a firstdynamic model that indicates a relationship between a motion of therobot and a floor reaction force so as to determine a provisionalinstantaneous value of a desired motion as an output of the firstdynamic model;

second model calculating means for supplying at least a provisionalinstantaneous value of the desired motion to a second dynamic model thatindicates a relationship between a motion of the robot and therestriction object amount so as to determine an instantaneous value of amodel restriction object amount as an output of the second dynamicmodel; and

first model input correcting means for determining a floor reactionforce moment correction amount of a desired floor reaction force suchthat at least the instantaneous value of the model restriction objectamount falls within the permissible range, and for additionallysupplying the determined floor reaction force moment correction amountto the first dynamic model,

wherein a desired instantaneous value of the desired motion isdetermined on the basis of at least an input of the second dynamicmodel.

According to the fourteenth invention, a floor reaction force momentcorrection amount of a desired floor reaction force is determined suchthat the instantaneous value of a model restriction object amount as anoutput of a second dynamic model falls within a permissible range, andthe determined floor reaction force moment correction amount isadditionally supplied to the first dynamic model. Hence, aninstantaneous value of a desired motion that allows the restrictionobject amount to fall within a permissible range can be obtained on thebasis of at least an input of the second dynamic model. This means thatan instantaneous value of a desired motion, which is an input to thesecond dynamic model, is determined through the intermediary of thefirst dynamic model such that a restriction object amount occurring onthe second dynamic model falls within a permissible range. Therefore, itis possible to generate a motion of a desired gait that causes arestriction object amount, such as a floor reaction force momentvertical component, fall within the permissible range. This means thatan instantaneous value of a desired motion is determined, consideringthe limitation of a vertical component of a frictional force moment onthe dynamic models. Thus, a desired gait can be generated that makes itpossible to prevent a robot from spinning and falling from the spinning.In addition, it is not required to always maintain the restrictionobject amount to zero or substantially zero as long as a restrictionobject amount remains within a permissible range, thus making itpossible to generate a desired gait that prevents the motion of acertain part of the robot from becoming unduly intense.

Ideally, the aforesaid second dynamic model basically has higherapproximation accuracy than the first dynamic model.

The fourteenth invention preferably comprises means for determining aninstantaneous value of a floor reaction force moment that substantiallycorresponds to the instantaneous value of the model restriction objectamount output by the second dynamic model as an instantaneous value of adesired floor reaction force moment constituting the desired gait (afifteenth invention).

This arrangement makes it possible to determine an instantaneous valueof a desired floor reaction force moment with high dynamic accuracy withrespect to an instantaneous value of a desired motion.

Further, in the aforesaid fourteenth and fifteenth inventions,preferably, the first model input correcting means comprises means forestimating, on the basis of at least an instantaneous value of a modelrestriction object amount determined by the second model calculatingmeans, an estimated value of an instantaneous value of a modelrestriction object amount output by the second dynamic model if it isassumed that at least a floor reaction force moment correction amount ofthe desired floor reaction force is zero, and means for comparing theestimated value of an instantaneous value of the model restrictionobject amount with the permissible range to determine a restrictedrestriction object amount that has been restricted to fall within thepermissible range on the basis of the comparison, wherein the floorreaction force moment correction amount is determined on the basis of atleast the difference between the instantaneous value of the modelrestriction object amount determined by the second model calculatingmeans and the restricted restriction object amount (a sixteenthinvention).

According to the sixteenth invention, first, an estimated value of arestriction object amount when it is assumed that the correction amountof a floor reaction force moment is zero, is determined on the basis ofat least an instantaneous value of the model restriction object amount,and a restricted restriction object amount is determined on the basis ofthe comparison between the estimated value and a permissible range. Inthis case, the estimated value of a restriction object amount may bedetermined, considering gyro effect. The restricted restriction objectamount is preferably determined to be a value as close as possible to anestimated value of a restriction object amount within the permissiblerange. And, a floor reaction force moment correction amount isdetermined on the basis of at least the difference between theinstantaneous value of the model restriction object amount and therestricted restriction object amount. This makes it possible todetermine a proper floor reaction force moment correction amount thatpermits prevention of a restriction object amount from exceeding apermissible range.

The fourteenth and the fifteenth inventions further preferably comprisesmeans for determining a required value of a floor reaction force momentcorrection amount of the desired floor reaction force, wherein the firstmodel input correcting means comprises means for estimating, on thebasis of at least an instantaneous value of a model restriction objectamount determined by the second model calculating means and the requiredvalue, an estimated value of an instantaneous value of a modelrestriction object amount output by the second dynamic model if it isassumed that at least a floor reaction force moment correction amount ofthe desired floor reaction force is matched to the required value, andmeans for comparing the estimated value of an instantaneous value of themodel restriction object amount with the permissible range to determinea restricted restriction object amount that has been restricted to fallwithin the permissible range on the basis of the comparison, and whereinthe floor reaction force moment correction amount is determined on thebasis of at least the difference between the instantaneous value of themodel restriction object amount determined by the second modelcalculating means-and the restricted restriction object amount (aseventeenth invention).

According to the seventeenth invention, first, an estimated value of arestriction object amount when it is assumed that the floor reactionforce moment correction amount has been matched with the required valueis determined on the basis of at least an instantaneous value of themodel restriction object amount and the required value, and a restrictedrestriction object amount is determined on the basis of the comparisonbetween the estimated value and a permissible range. In this case, theestimated value of a restriction object amount may be determined,considering gyro effect. The restricted restriction object amount ispreferably determined to be a value as close as possible to an estimatedvalue of a restriction object amount within the permissible range. And,a floor reaction force moment correction amount is determined on thebasis of at least the difference between the instantaneous value of themodel restriction object amount and the restricted restriction objectamount. Thus, a proper floor reaction force moment correction amount canbe determined that makes it possible to prevent the restriction objectamount from exceeding the permissible range and that is as close to therequired value as possible at the same time.

The aforesaid fourteenth to seventeenth inventions may comprise a secondmodel input correcting means for determining a correction amount of thedesired motion on the basis of at least an instantaneous value of amodel restriction object amount determined by the second modelcalculating means and the permissible range, and additionally supplyingthe determined correction amount to the second dynamic model (aneighteenth invention).

With this arrangement, an instantaneous value of a desired motion formaking a restriction object amount further properly fall within apermissible range can be supplied to the second dynamic model, whileenhancing the stability of the first dynamic model at the same time.

Preferably, the eighteenth invention comprises a perturbation modelrepresenting a relationship between a perturbative motion of the robotand a perturbation portion of a restriction object amount, means fordetermining a manipulated variable of a floor reaction force moment onthe basis of at least an instantaneous value of a model restrictionobject amount determined by the second model calculating means and thepermissible range, and dividing means for dividing the determinedmanipulated variable of a floor reaction force moment into a floorreaction force moment correction amount of the desired floor reactionforce to be supplied to the first dynamic model and a perturbation modelmanipulated variable to be supplied to the perturbation model, whereinthe second model input correcting means supplies the perturbation modelmanipulated variable to the perturbation model so as to determine acorrection amount of the desired motion (a nineteenth invention).

With this arrangement, the manipulated variable of the floor reactionforce moment is divided into a floor reaction force moment correctionamount to be supplied to the first dynamic model and a perturbationmodel manipulated variable to be supplied to the perturbation model, sothat inputs suited to the characteristics of the first dynamic model andthe perturbation model can be supplied to the individual models. Hence,an instantaneous value of a desired motion that allows a restrictionobject amount to fall within a permissible range can be properlydetermined, while preventing the first dynamic model or the perturbationmodel from becoming unstable. Moreover, using a perturbation modelpermits easier processing for calculating a correction amount of adesired motion to be additionally supplied to the second dynamic model.

A floor reaction force moment correction amount to be supplied to thefirst dynamic model is preferably a low-frequency component (DCcomponent) of the manipulated variable of a floor reaction force moment,and a perturbation model manipulated variable to be supplied to aperturbation model is preferably a high-frequency component of themanipulated variable of a floor reaction force moment.

Preferably, the nineteenth invention comprises means for determining arequired value of a manipulated variable of the floor reaction forcemoment on the basis of at least a state amount of the perturbationmodel, wherein the means for determining a manipulated variable of thefloor reaction force moment determines a manipulated variable of a floorreaction force moment to be supplied to the dividing means on the basisof at least the instantaneous value of the model restriction objectamount determined by the second model calculating means, the permissiblerange, and the required value (a twentieth invention).

According to the twentieth invention, a state amount of a perturbationmodel (a rotational angle of a rotor as an element of the perturbationmodel and an angular velocity thereof, etc.) is taken into account inaddition to the permissible range when determining the manipulatedvariable of a floor reaction force moment to be supplied to the dividingmeans. This makes it possible to prevent a state amount of theperturbation model from considerably deviating from a state amountcorresponding to the required value, thereby preventing an impropercorrection amount of a desired motion from being determined by theperturbation model.

In the twentieth invention, ideally, the means for determining therequired value of the manipulated variable of a floor reaction forcemoment sequentially determines the required value according to afeedback control law on the basis of a deviation between the stateamount of the perturbation model and a desired value for the stateamount (a twenty-first invention).

According to the twenty-first invention, a perturbation modelmanipulated variable is determined such that a state amount of aperturbation model is substantially maintained in the vicinity of acertain desired state amount. Thus, a correction amount of a desiredmotion determined by the perturbation model can be set to be ideal for arestriction object amount to fall within a permissible range whilestably maintaining the state of the perturbation model.

In the nineteenth to twenty-first inventions comprising the perturbationmodels, the perturbation model is preferably a model representing arelationship between a perturbative motion perturbing a component abouta vertical axis or a floor surface normal line axis of an angularmomentum changing rate of a robot and a perturbation portion of therestriction object amount (a twenty-second invention).

This arrangement makes it possible to properly determine a correctionamount of a desired motion for making the restriction object amount fallwithin a permissible range.

In the twenty-second invention, the perturbative motion is ideally aperturbative motion for maintaining the center-of-gravity position ofthe robot substantially constant (a twenty-third invention).

With this arrangement, a correction of a desired motion by aperturbation model can be made without influencing a translational floorreaction force of a robot.

Further, in the aforesaid twenty-second and twenty-third inventions, theperturbative motion is preferably a perturbative motion of a body of therobot and/or an arm extended from the body (a twenty-fourth invention).

This arrangement permits easier processing for calculating a correctionamount of a desired motion.

Preferably, in the nineteenth invention, the means for determining amanipulated variable of the floor reaction force moment comprises meansfor estimating, on the basis of at least an instantaneous value of amodel restriction object amount determined by the second modelcalculating means, an estimated value of an instantaneous value of amodel restriction object amount output by the second dynamic model whenit is assumed that the perturbation model manipulated variable is zero,and means for comparing the estimated value of an instantaneous value ofthe model restriction object amount with the permissible range todetermine a restricted restriction object amount that has beenrestricted to fall within the permissible range on the basis of thecomparison, wherein the manipulated variable of the floor reaction forcemoment is determined on the basis of at least a difference between theinstantaneous value of the model restriction object amount determined bythe second model calculating means and the restricted restriction objectamount (a twenty-fifth invention).

According to the twenty-fifth invention, first, an estimated value of arestriction object amount when it is assumed that a perturbation modelmanipulated variable is zero, that is, when a perturbation portion of arestriction object amount additionally generated by correcting aprovisional instantaneous value of a desired motion by a perturbationmodel is assumed to be zero, is determined on the basis of at least aninstantaneous value of the model restriction object amount, and arestricted restriction object amount is determined on the basis of thecomparison between the estimated value and a permissible range. In thiscase, the estimated value of a restriction object amount may bedetermined, considering gyro effect. The restricted restriction objectamount is preferably determined to be a value as close as possible to anestimated value of a restriction object amount within the permissiblerange. And, a manipulated variable of a floor reaction force moment isdetermined on the basis of at least the difference between theinstantaneous value of the model restriction object amount and therestricted restriction object amount. This makes it possible to properlydetermine a manipulated variable of a floor reaction force moment thatpermits prevention of a restriction object amount from exceeding apermissible range.

In the aforesaid twentieth invention, the means for determining themanipulated variable of a floor reaction force moment comprises meansfor estimating, on the basis of at least an instantaneous value of amodel restriction object amount determined by the second modelcalculating means and the required value, an estimated value of aninstantaneous value of a model restriction object amount output by thesecond dynamic model if it is assumed that the perturbation modelmanipulated variable is matched to the required value, and means forcomparing the estimated value of an instantaneous value of the modelrestriction object amount with the permissible range to determine arestricted restriction object amount that has been restricted to fallwithin the permissible range on the basis of the comparison, wherein themanipulated variable of the floor reaction force moment is determined onthe basis of at least the difference between the instantaneous value ofthe model restriction object amount determined by the second modelcalculating means and the restricted restriction object amount (atwenty-sixth invention).

According to the twenty-sixth invention, first, an estimated value of arestriction object amount when it is assumed that the perturbation modelmanipulated variable has been matched with the required value, that is,when it is assumed that only the required value has been supplied to aperturbation model, is determined on the basis of at least aninstantaneous value of the model restriction object amount and therequired value, and a restricted restriction object amount is determinedon the basis of the comparison between the estimated value and apermissible range. In this case, the estimated value of a restrictionobject amount may be determined, taking gyro effect into account. Therestricted restriction object amount is preferably determined to be avalue as close as possible to an estimated value of a restriction objectamount within the permissible range. And, a perturbation modelmanipulated variable is determined on the basis of at least thedifference between the instantaneous value of the model restrictionobject amount and the restricted restriction object amount. This makesit possible to properly determine a manipulated variable of a floorreaction force moment that prevents a restriction object amount fromexceeding a permissible range and also to secure stability of theperturbation model.

According to a twenty-seventh invention of a gait generating device of alegged mobile robot in accordance with the present invention,

there is provided a gait generating device for generating a desired gaitof a legged mobile robot that travels by moving a plurality of legsextended from its body, comprising:

permissible range setting means for setting a permissible range of arestriction object amount, the restriction object amount being avertical component of a floor reaction force moment or a component ofthe floor reaction force moment in floor surface normal line direction,or a vertical component of an angular momentum changing rate of therobot or a component of the angular momentum changing rate in floorsurface normal line direction, to be applied to the robot;

desired floor reaction force provisional instantaneous value determiningmeans for sequentially determining a provisional instantaneous value ofat least a desired floor reaction force among a desired motion and adesired floor reaction force constituting the desired gait;

first model calculating means for supplying at least a provisionalinstantaneous value of the desired floor reaction force to a firstdynamic model that indicates a relationship between a motion of therobot and a floor reaction force so as to determine a first provisionalinstantaneous value of a desired motion as an output of the firstdynamic model;

second model calculating means with restriction for supplying at least aprovisional instantaneous value of the desired floor reaction force to asecond dynamic model that indicates a relationship between a motion ofthe robot and the restriction object amount so as to determine a secondprovisional instantaneous value of a desired motion as an output of thesecond dynamic model such that an instantaneous value of a restrictionobject amount substantially balancing with the second provisionalinstantaneous value of the desired motion on the second dynamic modelfalls within the permissible range;

manipulated variable calculating means for determining a manipulatedvariable of a floor reaction force moment on the basis of at least adifference between the first provisional instantaneous value and thesecond provisional instantaneous value of the desired motion such thatthe difference approximates to zero; and

model input correcting means for additionally supplying the manipulatedvariable of the floor reaction force moment to at least one of the firstdynamic model and the second dynamic model,

wherein the second provisional instantaneous value of the desired motionis determined as the instantaneous value of the desired motion.

According to the twenty-seventh invention, a provisional instantaneousvalue of a desired floor reaction force is supplied to the first dynamicmodel to determine a first provisional instantaneous value of a desiredmotion, while a provisional instantaneous value of a desired floorreaction force is also supplied to the second dynamic model, and asecond provisional instantaneous value of the desired motion isdetermined using the second dynamic model. In this case, however, thesecond provisional instantaneous value of the desired motion isdetermined such that an instantaneous value of a restriction objectamount that substantially balances with the second provisionalinstantaneous value on the second dynamic model falls within thepermissible range. And, the manipulated variable of a floor reactionforce moment is determined on the basis of at least a difference betweenthe first provisional instantaneous value and the second provisionalinstantaneous value of the desired motion such that the differenceapproximates to zero, and this is additionally supplied to at least oneof the first dynamic model and the second dynamic model. Furthermore,the second provisional instantaneous value of a desired motion isdetermined as a desired instantaneous value of the desired motion.

Thus, the second provisional instantaneous value of a desired motiondetermined by a restricted second model calculating means exhibits highstability, while making the restriction object amount fall within apermissible range. As a result, it is possible to generate a motion of adesired gait that makes a restriction object amount, such as a floorreaction force moment vertical component, fall within a permissiblerange. This means that the instantaneous value of a desired motion isdetermined, taking into account the limitation of a vertical componentof a frictional force moment on the dynamic model. With thisarrangement, a desired gait can be generated that makes it possible toprevent a robot from spinning and falling from the spinning. Inaddition, it is not required to always maintain the restriction objectamount to zero or substantially zero as long as a restriction objectamount remains within a permissible range, thus making it possible togenerate a desired gait that prevents the motion of a certain part ofthe robot from becoming unduly intense.

The first dynamic model may have relatively low dynamic approximationaccuracy. The second dynamic model preferably has higher dynamicapproximation accuracy than the first dynamic model.

In the twenty-seventh invention, the difference between the firstprovisional instantaneous value and the second provisional instantaneousvalue of the desired motion preferably includes a difference in a stateamount of a posture of a predetermined part of the robot about avertical axis or about a floor surface normal line axis (a twenty-eighthinvention).

With this arrangement, the stability of a posture state amount of thepredetermined part (e.g., the body) in the yaw direction can be ideallyimproved.

The aforesaid twenty-seventh and twenty-eighth inventions preferablycomprise means for determining an instantaneous value of a floorreaction force moment corresponding to a restriction object amountsubstantially balancing with an instantaneous value of the desiredmotion on the second dynamic model as an instantaneous value of adesired floor reaction force moment constituting the desired gait (atwenty-ninth invention).

This arrangement makes it possible to determine an instantaneous valueof a desired floor reaction force moment that has high dynamic accuracyrelative to an instantaneous value of a desired motion.

The twenty-seventh invention described above can be easily implementedby using, for example, the arrangement according to the aforesaidseventeenth invention. More specifically, the seventeenth inventioncomprises third model calculating means for supplying at least theprovisional instantaneous value of the desired floor reaction force to athird dynamic model representing a relationship between a motion of therobot and a floor reaction force so as to determine a third provisionalinstantaneous value of a desired motion as an output of the thirddynamic model, wherein the means for determining a required value of afloor reaction force moment correction amount of the desired floorreaction force determines the required value on the basis of adifference between a desired instantaneous value of the determineddesired motion and a third provisional instantaneous value of thedesired motion such that the difference approximates to zero (athirtieth invention).

In the thirtieth invention, the third dynamic model and the third modelcalculating means correspond to the first dynamic model and the firstmodel calculating means, respectively, in the seventeenth invention.Hence, the thirtieth invention is equivalent to the seventeenthinvention and capable of providing the same advantages as those of theseventeenth invention.

According to a thirty-first invention of a gait generating device of alegged mobile robot in accordance with the present invention, there isprovided a gait generating device for generating a desired gait of alegged mobile robot that travels by moving a plurality of legs extendedfrom its body, comprising:

permissible range setting means for setting a permissible range of arestriction object amount, the restriction object amount being avertical component of a floor reaction force moment or a component ofthe floor reaction force moment in floor surface normal line direction,or a vertical component of an angular momentum changing rate of therobot or a component of the angular momentum changing rate in floorsurface normal line direction, to be applied to the robot;

desired motion provisional instantaneous value determining means forsequentially determining a provisional instantaneous value of a desiredmotion constituting the desired gait;

model calculating means for supplying the provisional instantaneousvalue of the desired motion to a dynamic model representing arelationship between a motion of the robot and the restriction objectamount so as to determine an instantaneous value of a model restrictionobject amount as an output of the dynamic model; and

desired instantaneous value determining means for determining aninstantaneous value of a desired motion by correcting the provisionalinstantaneous value of the desired motion on the basis of a portion ofthe model restriction object amount instantaneous value that deviatesfrom the permissible range and that has been passed through a low-passfilter.

According to the thirty-first invention, an instantaneous value of adesired motion is determined by correcting a provisional instantaneousvalue of the desired motion on the basis of a portion of the modelrestriction object amount instantaneous value as an output of thedynamic model, the portion deviating from the permissible range andhaving been passed through a low-pass filter. In other words, aprovisional instantaneous value of a desired motion is corrected on thebasis of a low-frequency component (including a DC component) of theaforementioned deviating portion. This makes it possible to generate amotion of a desired gait that permits prevention of a restriction objectamount, such as a floor reaction force moment vertical component, fromsteadily deviating from a permissible range. More specifically, aninstantaneous value of a desired motion is determined, taking intoaccount the limitation of a vertical component of a frictional forcemoment on the dynamic model. With this arrangement, a desired gait canbe generated that makes it possible to prevent a robot from spinning andfalling from the spinning. In addition, it is not required to alwaysmaintain a restriction object amount to zero or substantially zero, sothat it is possible to generate a desired gait that prevents the motionof a certain part of the robot from becoming unduly intense.

In the thirty-first invention, the desired instantaneous valuedetermining means preferably determines a floor reaction force momentcorresponding to a difference between the model restriction objectamount instantaneous value and the deviating portion as theinstantaneous value of a desired floor reaction force momentconstituting the desired gait (a thirty-second invention).

This arrangement makes it possible to determine an instantaneous valueof a desired floor reaction force moment having high dynamic accuracyrelative to an instantaneous value of a desired motion.

According to a thirty-third invention, which is a control device of alegged mobile robot in accordance with the present invention, a controldevice for controlling an operation of the robot to make the robotfollow a desired gait generated by the gait generating device of alegged mobile robot according to the first to the thirty-secondinventions comprises slippage determining means for determining theoccurrence of a slippage of the robot in operation, following thedesired gait, wherein the permissible range setting means variably setsthe permissible range according to a determination result of theslippage determining means.

According to the thirty-third invention, the permissible range of arestriction object amount is variably set on the basis of adetermination result of the occurrence of a slippage of an actual robot,so that the occurrence of a slippage of the robot can be securelyrestrained. If it is determined that a slippage has occurred, then thepermissible range should be set to be narrower.

According to the thirty-third invention, the occurrence of a slippagecan be determined, for example, as described below.

Specifically, the slippage determining means determines the occurrenceof a slippage on the basis of at least a ground speed of a distalportion of a leg in contact with the ground (a thirty-fourth invention).In this case, it can be determined that a slippage has occurred if, forexample, the absolute value of the ground speed is larger than apredetermined value.

Alternatively, the slippage determining means comprises means fordetermining an apparent spring constant of a leg on the basis of atleast a temporal changing rate of an actual floor reaction force actingon the leg in contact with the ground and a ground speed of a distalportion of the leg, wherein the occurrence of a slippage is determinedon the basis of at least the apparent spring constant (a thirty-fifthinvention). In this case, it can be determined that a slippage hasoccurred if, for example, the apparent spring constant is smaller than apredetermined value.

Alternatively, the slippage determining means determines the occurrenceof a slippage on the basis of at least an actual floor reaction forceacting on a leg in contact with the ground that has been passed througha band-pass filter having a frequency pass characteristic in a rangenear a predetermined frequency (a thirty-sixth invention). In this case,the actual floor reaction force passed through the band-pass filter willbe equivalent to a vibration component of the actual floor reactionforce when a so-called slippage vibration is taking place. And, if, forexample, the magnitude (absolute value) of the vibration component islarger than a predetermined value, then it can be determined that aslippage vibration exists.

The occurrence of a slippage can be determined by any one of thethirty-fourth to the thirty-sixth inventions. Alternatively, two or moreof these thirty-fourth to the thirty-sixth inventions may be combined todetermine the occurrence of a slippage.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a diagram schematically showing a general construction of abipedal mobile robot as a legged mobile robot in an embodiment of thepresent invention and a reference example related thereto,

FIG. 2 is a diagram showing a structure of a distal portion of a leg ofthe robot shown in FIG. 1,

FIG. 3 is a block diagram showing a construction of a control unitprovided on the robot shown in FIG. 1, and

FIG. 4 is a block diagram showing a functional construction of thecontrol unit in a first reference example.

FIG. 5 is a diagram for explaining a walking gait generated in theembodiment and the reference example,

FIG. 6 is a graph showing an example of a vertical component trajectoryof a desired floor reaction force,

FIG. 7 shows graphs illustrating examples of an X component and a Ycomponent of a desired ZMP trajectory,

FIG. 8 is a diagram for explaining a body translational mode of a robot,

FIG. 9 is a diagram for explaining a body inclination mode of the robot,

FIG. 10 is a diagram for explaining a body yaw rotation mode of therobot,

FIG. 11( a) is a diagram for explaining an antiphase arm swing mode ofthe robot in a plan view and

FIG. 11( b) is a diagram for explaining an antiphase arm swing mode ofthe robot in a side view, and

FIG. 12 is a diagram for explaining a dynamic model used in theembodiment.

FIG. 13 is a flowchart showing a main routine processing of a gaitgenerating device in a first reference example,

FIG. 14 is a diagram for explaining a diversion state of the robot,

FIG. 15 is a flowchart showing a subroutine processing of S022 of FIG.13,

FIG. 16 is a diagram for explaining a normal gait and a supporting legcoordinate system,

FIG. 17 is a diagram illustrating a body trajectory of the normal gaitand the supporting leg coordinate system,

FIG. 18 is a graph showing an example of a reference antiphase arm swingangle,

FIG. 19 is a graph showing a setting example of a desired floor reactionforce vertical component trajectory in a normal gait,

FIG. 20 is a graph showing a setting example of a floor reaction forcehorizontal component permissible range in a normal gait,

FIG. 21 is a graph showing a setting example of a floor reaction forcemoment vertical component permissible range in the normal gait, and

FIG. 22 is a graph showing a setting example of the desired ZMPtrajectory in the normal gait.

FIG. 23 is a flowchart showing subroutine processing of S024 in FIG. 13,

FIG. 24 is a flowchart showing subroutine processing of S208 in FIG. 23,

FIG. 25 is a flowchart showing subroutine processing of S306 in FIG. 24,

FIG. 26 is a flowchart showing subroutine processing of S412 in FIG. 25,

FIG. 27 is a graph showing an example of a floor reaction forcehorizontal component in which a permissible range is not considered,

FIG. 28 is a graph showing an example of the floor reaction forcehorizontal component in which the permissible range is considered,

FIG. 29 is a graph showing an example of a body inclination angleacceleration,

FIG. 30 is a graph showing an example of a body inclination restoringmoment ZMP-converted value for restoring a body inclination angle of therobot,

FIG. 31 is a graph showing an example of a body inclination angleacceleration in which the body inclination restoring momentZMP-converted value is reflected,

FIG. 32 is a graph showing an example of a floor reaction force momentvertical component in which a permissible range is not considered,

FIG. 33 is a graph showing an example of a floor reaction force momentvertical component in which the permissible range is considered,

FIG. 34 is a graph showing an example of an antiphase arm swing moment,

FIG. 35 is a graph showing an antiphase arm swing angular accelerationcorresponding to the antiphase arm swing moment shown in FIG. 34,

FIG. 36 is a graph showing an example of an antiphase arm swingrestoring angular acceleration for restoring an antiphase arm swingangle,

FIG. 37 is a graph showing an antiphase arm swing restoring momentcorresponding to an antiphase arm swing restoring angular accelerationshown in FIG. 36, and

FIG. 38 is a graph showing a floor reaction force moment verticalcomponent formed by combining the floor reaction force moment verticalcomponent shown in FIG. 33 and the antiphase arm swing restoring momentshown in FIG. 37.

FIG. 39 is a flowchart showing subroutine processing of S026 in FIG. 13,

FIG. 40 is a graph showing a setting example of a floor reaction forcehorizontal component permissible range of a present gait,

FIG. 41 is a graph showing a setting example of a floor reaction forcemoment vertical component permissible range of the present gait,

FIG. 42 is a flowchart showing subroutine processing of S028 in FIG. 13,

FIG. 43 is a flowchart showing subroutine processing of S702 in FIG. 42,

FIG. 44 is a graph showing examples of a provisional desired ZMP of thepresent gait, a ZMP correction amount, and a desired ZMP aftercorrection,

FIG. 45 is a flowchart showing subroutine processing of S030 in FIG. 13,and

FIG. 46 is a flowchart showing subroutine processing of S1412 in FIG.45.

FIG. 47 is a graph showing a relationship between normal gaits anddesired gaits relative to body position trajectories,

FIG. 48 is a diagram showing another example of a body inclination mode(body inclination about waist),

FIG. 49 is a diagram for explaining another example of a dynamic model,

FIG. 50 is a diagram showing a setting example of a desired floorreaction force vertical component in a walking gait,

FIG. 51 is a diagram showing a relationship between the position in thebody vertical direction and a floor reaction force vertical component inrunning gaits of the robot, and

FIG. 52 is a diagram showing a relationship between the position in thebody vertical direction and a floor reaction force vertical component inwalking gaits of the robot.

FIG. 53 is a block diagram showing a functional construction of acontrol unit in a second reference example,

FIG. 54 is a block diagram showing the processing of a compensatingtotal floor reaction force moment horizontal component distributor shownin FIG. 53,

FIG. 55 is a block diagram showing the processing of a modelmanipulation floor reaction force moment vertical component determinershown in FIG. 53,

FIG. 56 is a flowchart showing main routine processing of a gaitgenerating device in the second reference example,

FIG. 57 is a flowchart showing subroutine processing of S3032 in FIG.56, and

FIG. 58 is a flowchart showing a subroutine processing of S3414 in FIG.57.

FIG. 59 is a block diagram showing a functional construction of acontrol unit in a third reference example,

FIG. 60 is a flowchart showing main routine processing of a gaitgenerating device in the third reference example,

FIG. 61 is a flowchart showing subroutine processing of S2034 in FIG.60, and

FIG. 62 is a flowchart showing subroutine processing of S2114 in FIG.61.

FIG. 63 is a block diagram showing a functional construction of acontrol unit in a first embodiment of the present invention,

FIG. 64 is a block diagram showing a functional construction of a gaitgenerating device in the first embodiment,

FIG. 65 is a setting example of a ZMP permissible range in the firstembodiment,

FIG. 66 is a flowchart showing main routine processing of the gaitgenerating device in the first embodiment,

FIG. 67 is a block diagram illustrating the processing of S3536 of FIG.66,

FIG. 68 is a diagram for explaining a horizontal body positionperturbating model shown in FIG. 67,

FIG. 69 is a diagram for explaining a perturbation model for correctinga body posture angle shown in FIG. 67,

FIG. 70 is a diagram for explaining a perturbation model for correctingan antiphase arm swing angle shown in FIG. 67, and

FIG. 71 is a block diagram showing processing of an antiphase arm swingangle correcting perturbation model moment determiner shown in FIG. 67.

FIG. 72 is a block diagram showing the processing of S3536 in FIG. 66 ina second embodiment of the present invention and

FIG. 73 is a block diagram showing the processing of the antiphase armswing angle correcting perturbation model moment determiner shown inFIG. 72.

FIG. 74 is a block diagram showing a functional construction of a gaitgenerating device in a third embodiment of the present invention, and

FIG. 75 is a block diagram showing the processing of a pseudo order fullmodel shown in FIG. 74.

FIG. 76 is a block diagram showing the processing of S3536 in FIG. 66 ina fourth embodiment of the present invention.

FIG. 77 is a block diagram showing a functional construction of acontrol unit in a fourth reference example related to a fifth embodimentof the present invention,

FIG. 78 is a flowchart showing main routine processing of a gaitgenerating device in the fourth reference example,

FIG. 79 is a flowchart showing the processing of S2334 of FIG. 78,

FIG. 80 is a flowchart showing the processing of a slippage determinershown in FIG. 77,

FIG. 81 to FIG. 83 are flowcharts showing the subroutine processing ofS5210, S5212, and S5214, respectively, in FIG. 80,

FIG. 84 is a graph showing examples of determination results of theslippage determiner, reducing rates of permissible ranges, and floorreaction force permissible ranges,

FIG. 85 is a block diagram showing modification examples related to thefirst to the fifth embodiments, and

FIG. 86 is a block diagram showing a modification example (a sixthembodiment) of the processing of the antiphase arm swing anglecorrecting perturbation model moment determiner related to the firstembodiment.

BEST MODE FOR CARRYING OUT THE INVENTION

Referring now to the accompanying drawings, control devices of leggedmobile robots according to embodiments of the present invention will beexplained. As the legged mobile robots, bipedal mobile robots will beused as examples.

First, with reference to FIG. 1 to FIG. 47, a first reference examplerelated to the control device of a legged mobile robot in accordancewith the present invention will be explained. Further, a secondreference example will be explained, referring to FIG. 53 to FIG. 58,and a third reference example will be explained, referring to FIG. 59 toFIG. 62. The embodiments of the present invention to be discussedhereinafter share the same mechanical constructions as that of the firstreference example, while they only partly differ from any one of thefirst to the third reference examples in gait generation processing andcontrol processing of a robot. For this reason, the explanation of thefirst to the third reference examples will be frequently used in theexplanation of the embodiments to be discussed hereinafter.Supplementally, the same matters that will be explained with referenceto FIG. 1 and FIG. 2, FIG. 3 and FIG. 5 to FIG. 12 to be discussed laterwill apply to the embodiments to be discussed later.

First, the first reference example will be explained. FIG. 1 is aschematic diagram generally showing a bipedal mobile robot representinga legged mobile robot according to the first reference example.

As shown in the figure, a bipedal mobile robot (hereinafter referred toas “the robot”) 1 is equipped with a pair of right and left legs (leglinks) 2, 2 provided such that they extend downward from a body (a basebody of the robot 1) 3. The two legs 2, 2 share the same construction,each having six joints. The six joints of each leg are comprised of, inthe following order from the body 3 side, joints 10R, 10L (symbols R andL meaning correspondence to the right leg and the left leg,respectively; the same will be applied hereinafter) for swinging(rotating) a hip (waist)(for rotating in a yaw direction relative to thebody 3), joints 12R, 12L for rotating the hip (waist) in a rolldirection (about an X axis), joints 14R, 14L for rotating the hip(waist) in a pitch direction (about a Y axis), joints 16R, 16L forrotating knees in the pitch direction, joints 18R, 18L for rotatingankles in the pitch direction, and joints 20R, 20L for rotating theankles in the roll direction.

A foot (foot portion) 22R (L) constituting a distal portion of each leg2 is attached to the bottoms of the two joints 18R (L) and 20R (L) ofthe ankle of each leg 2. The body 3 is installed at the uppermost top ofthe two legs 2, 2 through the intermediary of the three joints 10R (L),12R (L) and 14R (L) of the hip of each leg 2. A control unit 60 or thelike, which will be discussed in detail hereinafter, is housed insidethe body 3. For convenience of illustration, the control unit 60 isshown outside the body 3 in FIG. 1.

In each leg 2 having the aforesaid construction, a hip joint (or a waistjoint) is formed of the joints 10R (L), 12R (L) and 14R (L), the kneejoint is formed of the joint 16R (L), and the ankle joint is formed ofthe joints 18R (L) and 20R (L). The hip joint and the knee joint areconnected by a thigh link 24R (L), and the knee joint and the anklejoint are connected by a crus link 26R (L).

A pair of right and left arms 5, 5 is attached to both sides of an upperportion of the body 3, and a head 4 is disposed at a top end of the body3. Each arm 5 is provided with a shoulder joint composed of three joints30R (L), 32R (L), and 34R (L) an elbow joint composed of a joint 36R(L), a wrist joint composed of a joint 38R (L), and a hand 40R (L)connected to the wrist joint. The head 4 is not directly connected to atopic of the present invention, so that detailed explanation thereofwill be omitted.

According to the construction described above, the foot 22R (L) of eachleg 2 is given six degrees of freedom relative to the body 3. During atravel, such as walking, of the robot 1, desired motions of the two feet22R and 22L can be accomplished by driving 6*2=12 joints of the two legs2, 2 together (“*” in the present description will denote multiplicationas scalar calculation, while it will denote an outer product in vectorcalculation) at appropriate angles. This arrangement enables the robot 1to arbitrarily move in a three-dimensional space. Furthermore, each arm5 can perform a motion, such as arm swinging, by rotating its shoulderjoint, the elbow joint, and the wrist joint.

As shown in FIG. 1, a publicly known six-axis force sensor 50 isprovided between the ankle joints 18R (L), 20R (L) and the foot 22R (L)of each leg 2. The six-axis force sensor 50 detects primarily whetherthe foot 22R (L) of each leg 2 is in contact with the ground, and afloor reaction force (landing load) acting on each leg 2, and it outputsdetection signals of three-direction components Fx, Fy, and Fz of atranslational force of the floor reaction force and three-directioncomponents Mx, My, and Mz of a moment to the control unit 60.Furthermore, the body 3 is equipped with a posture sensor 54 fordetecting an inclination angle of the body 3 relative to a Z-axis(vertical direction (gravitational direction)) and an angular velocitythereof, and a rotational angle (yaw angle) of the body 3 about theZ-axis and an angular velocity thereof, detection signals thereof beingoutput from the posture sensor 54 to the control unit 60. The posturesensor 54 is provided with a three-axis direction accelerometer and athree-axis direction gyro sensor. These detection signals of thesesensors are used to detect posture angles (an inclination angle and ayaw angle) of the body 3 and an angular velocity thereof, and also usedto estimate a self position/posture of the robot 1. Although detailedstructures are not shown, each joint of the robot 1 is provided with anelectric motor 64 (refer to FIG. 3) for driving the joint, and anencoder (rotary encoder) 65 (refer to FIG. 3) for detecting a rotationalamount of the electric motor 64 (a rotational angle of each joint).Detection signals of the encoder 65 are output from the encoder 65 tothe control unit 60.

Furthermore, although not shown in FIG. 1, a joystick (operating device)73 (refer to FIG. 3) is provided at an appropriate position of the robot1. The joystick 73 is constructed in such a manner that a requestregarding a gait of the robot 1, such as a request for turning the robot1 that is moving straight, is input to the control unit 60 as necessaryby operating the joystick 73.

FIG. 2 is a diagram schematically showing a basic construction of adistal portion (including each foot 22R (L)) of each leg 2 in thepresent reference example. As shown in the diagram, a spring mechanism70 is installed between each foot 22R (L) and the six-axis force sensor50, and a foot sole elastic member 71 made of rubber or the like isbonded to a foot sole (the bottom surface of each foot 22R (L)). Thesespring mechanism 70 and the foot sole elastic member 71 constitute acompliance mechanism 72. The spring mechanism 70, which will bediscussed in detail later, is constructed of a square guide member (notshown), which is installed on the upper surface of the foot 22R (L), anda piston-shaped member (not shown) installed adjacently to the anklejoint 18R (L) (the ankle joint 20R (L) being omitted in FIG. 2) and thesix-axis force sensor 50, and housed in the guide member through theintermediary of an elastic member (rubber or spring) so that it may bejogged.

The foot 22R (L) indicated by a solid line shown in FIG. 2 is in a statewhere it is subjected to no floor reaction force. When each leg 2 issubjected to a floor reaction force, the spring mechanism 70 and thefoot sole elastic member 71 of the compliance mechanism 72 flex, causingthe foot 22R (L) to shift to the position/posture illustrated by adashed line in the figure. The structure of the compliance mechanism 72is important not only to ease a landing impact but also to enhancecontrollability, as explained in detail in, for example, JapaneseUnexamined Patent Publication Application No. 5-305584 previouslyproposed by the present applicant.

FIG. 3 is a block diagram showing a construction of the control unit 60.The control unit 60 is comprised of a microcomputer, and includes afirst calculator 90 and a second calculator 92 formed of CPUs, an A/Dconverter 80, a counter 86, a D/A converter 96, a RAM 84, a ROM 94, anda bus line 82 for transferring data among them. In the control unit 60,output signals of the six-axis force sensor 50, the posture sensor 54(an accelerometer and a rate gyro sensor), the joystick 73, etc. of eachleg 2 are converted into digital values by the A/D converter 80 and sentto the RAM 84 via the bus line 82. Outputs of the encoder 65 (rotaryencoder) of each joint of the robot 1 are supplied to the RAM 84 via thecounter 86.

As will be discussed hereinafter, the first calculator 90 generatesdesired gaits, calculates a joint angle displacement command (adisplacement angle of each joint or a command value of a rotationalangle of each electric motor 64), and sends the calculation result tothe RAM 84. The second calculator 92 reads the joint angle displacementcommand and an actual measurement value of a joint angle detected on thebasis of an output signal of the encoder 65 from the RAM 84 to calculatea manipulated variable required for driving each joint, and outputs thecalculated variable to the electric motor 64 for driving each jointthrough the intermediary of the D/A converter 96 and a servo amplifier64 a.

FIG. 4 is a block diagram showing the entire functional construction ofa control unit of the legged mobile robot in accordance with the firstreference example. A portion except for the “actual robot” in FIG. 4 isconstituted by processing functions implemented by the control unit 60(primarily the functions of the first calculator 90 and the secondcalculator 92). In the following explanation, the symbols R and L willbe omitted as long as it is not particularly necessary to discriminateright and left of the legs 2 and the arms 5.

The explanation will now be given. The control unit 60 is equipped witha gait generating device 100 for generating and outputting desired gaitsof the robot 1 freely and in real time. The functions of the gaitgenerating device 100 constitute individual means of the presentinvention. A desired gait output by the gait generating device 100 isconstituted of a desired body position/posture trajectory (trajectory ofa desired position and a desired posture of the body 3), a desired footposition/posture trajectory (trajectory of a desired position and adesired posture of each foot 22), a desired arm posture trajectory(trajectory of a desired posture of each arm 5), a desired total floorreaction force central point (desired ZMP) trajectory, and a desiredtotal floor reaction force trajectory. If a movable part relative to thebody 3 is provided in addition to the legs 2 and the arms 5, then adesired position/posture trajectory of the movable part is added to thedesired gait.

Here, the term “trajectory” in the above gait means a temporal changepattern (time series pattern), and may be referred to as “pattern” inplace of “trajectory” in the following explanation. Furthermore, a“posture” of each part means a spatial orientation. For example, aposture of a body is represented by an inclination angle of the body 3in the roll direction (about the X-axis) relative to the Z-axis(vertical axis), an inclination angle of the body 3 in the pitchdirection (about the Y-axis), and a rotational angle (yaw angle) of thebody 3 in the yaw direction (about the Z-axis). A foot posture isrepresented by means of a spatial azimuth of two axes fixedly set oneach foot 22. In the present description, a body posture may be referredto as a body posture angle. Of body postures, a posture relative to avertical direction may be referred to as a body posture inclination or abody posture inclination angle.

In the following explanation, the term “desired” will be frequentlyomitted when there is no danger of misunderstanding. Furthermore, amonggaits, those gaits related to constituent elements other than thoserelated to a floor reaction force, that is, the gaits related to motionsof the robot 1, such as a foot position/posture and a bodyposition/posture, will be collectively referred to as “motion.” A floorreaction force (floor reaction force comprised of a translational forceand the moment) of each foot 22 is referred to as “each-foot floorreaction force”, and a resultant force of the “each-foot floor reactionforces” of all (two) feet 22R and 22L of the robot 1 will be referred toas a “total floor reaction force”. In the following explanation,however, each-foot floor reaction force will hardly be referred to, sothat “floor reaction force” will be handled as having the same meaningas “total floor reaction force” unless otherwise specified.

A desired floor reaction force is generally expressed by a point ofaction and a translational force and the moment acting on the point. Thepoint of action may be set at any location, so that innumerableexpressions are possible for the same desired floor reaction force. If,however, a desired floor reaction force is expressed using especiallythe aforesaid desired floor reaction force central point (a desiredposition of the floor reaction force central point) as the point ofaction, then the moment component of the desired floor reaction forcewill be zero except for a vertical component (the moment about thevertical axis (Z-axis)). In other words, the horizontal component of themoment of the desired floor reaction force about the desired floorreaction force central point (the moment about the horizontal axis (theX-axis and the Y-axis)) will be zero.

In the case of a gait that satisfies dynamic balance conditions, a ZMPcalculated from a desired motion trajectory of the robot 1 (a point atwhich the moment of a resultant force of an inertial force calculatedfrom the desired motion trajectory and gravity acts about the pointbecomes zero except for a vertical component) agrees with a desiredfloor reaction force central point. Therefore, providing a desired ZMPtrajectory may be regarded as equivalent to providing a desired floorreaction force central point trajectory (refer to, for example, PCTKokai publication WO/02/40224 by the present applicant for moredetails).

From the background described above, in the description of PCT Kokaipublication WO/02/40224, a desired gait has been defined as follows.

-   a) In a broad sense, a desired gait is a combination of a desired    motion trajectory and a desired floor reaction force trajectory    thereof in a period of one step or a plurality of steps.-   b) In a narrow sense, a desired gait is a combination of a desired    motion trajectory and a ZMP trajectory thereof in a period of one    step.-   c) A series of gaits is formed of several gaits that are connected.

In walking, a vertical position of the body 3 of the robot 1 (a heightof the body) is determined by a body height determining techniqueproposed previously in Japanese Unexamined Patent ApplicationPublication No. 10-86080 by the present applicant. This subordinatelydetermines a translational floor reaction force vertical component.Furthermore, a translational floor reaction force horizontal componentis also determined by determining the horizontal body positiontrajectory of the robot 1 such that the horizontal component of themoment produced about a desired ZMP by a resultant force of the inertialforce and the gravity generated by the motion of a desired gait becomeszero. For this reason, a desired ZMP alone has been adequate as aphysical amount to be explicitly set for the floor reaction force of adesired gait in the description of PCT Kokai publication WO/02/40224.Thus, the definition in the above b) has been adequate as the definitionof a desired gait in the narrow sense. However, in the running gait ofthe robot 1 explained in the first reference example (the details willbe described hereinafter), a floor reaction force vertical component (atranslational floor reaction force vertical component) is also importantfor control. In the present invention, therefore, a desired trajectoryof the floor reaction force vertical component is explicitly set, andthen a trajectory of a desired vertical body position or the like of therobot 1 is determined. Hence, in the present description, the followingb′) will be adopted as the definition of a desired gait in a narrowsense. b′) A desired gait in a narrow sense is a combination of adesired motion trajectory and a desired floor reaction force trajectoryincluding at least a ZMP trajectory of the desired motion trajectory anda desired translational floor reaction force vertical componenttrajectory in a period of one step.

In the present description, a desired gait used hereinafter will meanthe desired gaits in the narrow sense of the above b′) unless otherwisespecified for the purpose of easy understand. In this case, “one step”of a desired gait will mean a period from the moment one leg 2 of therobot 1 touches the ground to the moment the other leg 2 touches theground. Supplementally, in the reference example and embodiments in thepresent description, a desired gait is used to mean a gait for one-stepperiod. This, however, does not have to be necessarily the one-stepperiod; it may alternatively be a period for a plurality of steps or aperiod that is shorter than one step (e.g., a half step). In thefollowing explanation, “floor reaction force vertical component” willmean “translational floor reaction force vertical component,” and theterm “moment” will be used for the vertical component (the componentabout the vertical axis) of a moment of a floor reaction force so as todistinguish it from the “floor reaction force vertical component.”Similarly, “floor reaction force horizontal component” will mean“translational floor reaction force horizontal component.”

Needless to say, a double stance period in a gait will refer to a periodduring which the robot 1 supports its own weight by the two legs 2, 2. Asingle stance period will refer to a period during which the robot 1supports its own weight only by one leg 2, and a floating period willrefer to a period during which both legs 2, 2 are apart from a floor(floating in the air). In the single stance period, the leg 2 notsupporting the self-weight of the robot 1 will be referred to as a “freeleg.” The running gait explained in the first reference example does nothave the double stance period, but alternately repeats the single stanceperiod (landing period) and the floating period. In this case, duringthe floating period of running, both legs 2, 2 do not support theself-weight of the robot 1; however, the leg 2 that was a free leg andthe leg 2 that was a supporting leg during a single stance periodimmediately before the floating period will be referred to as a “freeleg” and a “supporting leg,” respectively, even in the floating period.

Taking the running gait shown in FIG. 5 as an example, an outline of adesired gait generated by the gait generating device 100 will beexplained. More definitions and details related to gaits have been givenalso in Japanese Unexamined Patent Application Publication No. 10-86081previously proposed by the present applicant, so that the following willmainly give a description not covered by the Japanese Unexamined PatentApplication Publication No. 10-86081.

First, the running gait shown in FIG. 5 will be explained. This runninggait is a gait similar to a typical human running gait. In this runninggait, the single stance period in which the foot 22 of only either theright or left leg 2 (supporting leg) of the robot 1 lands (contacts theground) and a floating period in which both the legs 2, 2 float in theair are alternately repeated. In FIG. 5, the first state illustrates astate wherein a single stance period has begun (initial stage), thesecond state illustrates a state of a midpoint of the single stanceperiod, the third state illustrates a state wherein a floating periodfollowing the single stance period has begun (an end of the singlestance period), the fourth state illustrates a state of a midpoint ofthe floating period, and the fifth state illustrates an end of thefloating period (a start of the next single stance period).

In this running gait, the robot 1 lands at the heel of the foot 22 ofthe supporting leg (the leg 2 on the front side in the advancingdirection of the robot 1) at the beginning of the single stance period,as shown in the first state of FIG. 5. Subsequently, the robot 1 bringssubstantially the entire surface of the sole of the landed foot 22 (thefoot 22 of the supporting leg) into contact with the ground as shown inthe second state of FIG. 5, and then kicks the floor with the tiptoe ofthe foot 22 (the foot 22 of the leg 2 on the rear side with respect tothe advancing direction of the robot 1 in the third state of FIG. 5) ofthe supporting leg to jump into the air as shown in the third state ofFIG. 5. This ends the single stance period and starts the floatingperiod at the same time. The free leg in the single stance period existsbehind the supporting leg at the beginning of the single stance periodas shown in the first state of FIG. 5, but swung out to the front of thesupporting leg toward the next predetermined landing position, as shownin the second and the third states of FIG. 5. Next, following thefloating period shown in the fourth state of FIG. 5, the robot 1 landsat the heel of the foot 22 of the free leg (the leg 2 that was the freeleg in the single stance period immediately before the floating periodstarted), and the next single stance period is begun.

Considering the running gait shown in FIG. 5, a basic outline of adesired gait generated by the gait generating device 100 will beexplained. Although more details will be discussed later, when the gaitgenerating device 100 generates a desired gait, basic required values(required parameters) for generating the desired gait, such as a landingposition/posture (expected landing position/posture) of the foot 22 of afree leg and a landing time (expected landing time), are supplied to thegait generating device 100 according to a required operation or the likeof the joystick 73. The gait generating device 100 then generates thedesired gait using the required parameters. More detailedly, the gaitgenerating device 100 determines parameters (referred to as gaitparameters) that specify some constituent elements of the desired gait,such as a desired foot position/posture trajectory and a desired floorreaction force vertical component trajectory, on the basis of the aboverequired parameters, and then sequentially determines instantaneousvalues of the desired gait by using the gait parameters so as togenerate a time series pattern of the desired gait.

In this case, a desired foot position/posture trajectory (to be morespecific, a desired trajectory of each spatial component (X-axiscomponent or the like) of the position and the posture of a foot) isgenerated for each foot 22 by using a finite-duration setting filterproposed in U.S. Pat. No. 3,233,450 by the present applicant. Thisfinite-duration setting filter includes a plurality of stages (3 stagesor more in the first reference example) of first-order lag filters ofvariable time constants, that is, filters represented in terms of atransfer function of 1/(1+τs) (τ is a variable time constant.Hereinafter, the filter will be referred to as a unit filter), theplurality of stages of the filters being connected in series. Thisarrangement makes it possible to generate and output a trajectory thatreaches a specified value at desired specified time. In this case, everytime constant τ of the unit filter of each stage is variably set insequence according to remaining time until the above specified timeafter starting the generation of an output of the finite-durationsetting filter. More specifically, the setting is made such that, thevalue of τ is decreased from a predetermined initial value (>0) as theremaining time reduces, and the value of τ finally reaches zero at thespecified time at which the remaining time reaches zero. A step input ofa height based on the specified value (more specifically, a changeamount from an initial value to the specified value of an output of thefinite-duration setting filter) is supplied to the finite-durationsetting filter. The finite-duration setting filter not only generates anoutput that reaches a specified value at specified time but also makesit possible to set a changing rate of an output of the finite-durationsetting filter at specified time to zero or substantially zero.Especially when three stages or more (three stages will do) of the unitfilters are connected, the changing acceleration (a differential valueof a changing rate) of an output of the finite-duration setting filtercan be reduced to zero or substantially zero.

The desired foot position/posture trajectory generated by thefinite-duration setting filter as described above is the desiredposition/posture trajectory of each foot 22 on a supporting legcoordinate system, which is fixed on a floor surface and which is to bediscussed later.

The desired foot position/posture trajectory generated as describedabove is generated such that the position of each foot 22 begins moving,while gradually accelerating from the initial in-contact-with-the-groundstate (the state at the initial time of a desired gait) toward anexpected landing position. The desired foot position/posture trajectoryis generated such that the changing rate of the position is graduallydecelerated to zero or substantially zero until the expected landingtime is finally reached, and the expected landing position is reached atthe expected landing time, stopping the movement. Hence, the groundspeed at the moment each foot 22 lands becomes zero or substantiallyzero (the changing rate of the position of each foot 22 on thesupporting leg coordinate system secured to a floor). Accordingly, alanding impact will be low even when the robot 1 lands from the statewherein all legs 2, 2 are simultaneously present in the air (the statein the floating period) in a running gait.

In the aforesaid running gait, the vertical velocity of the body 3switches downward from the latter half of the floating period due to thegravity acting on the robot 1, and remains downward at the time oflanding. Therefore, the relative velocity of the foot 22 of a free legwith respect to the body 3 switches upward immediately before landing ifthe desired foot position/posture trajectory is generated such that theground speed at the moment each foot 22 lands reaches zero orsubstantially zero, as described above, and if the desiredposition/posture trajectory of the body 3 is generated to satisfy adynamic balance condition, as will be discussed later. This means thatthe desired gait of the robot 1 is such that the robot 1 lands,withdrawing the leg 22 that is a free leg toward the body 3. In otherwords, according to the desired gait in the first reference example, therobot 1 lands while pulling the foot 22 up, as observed from the body 3,so that the ground speed of the foot 22 of the free leg reaches zero orsubstantially zero. This restrains a landing impact to prevent thelanding impact from becoming excessive.

Furthermore, in the first reference example, the finite-duration settingfilter is composed of three stages of more (e.g., three stages) of theunit filters connected in series, so that the velocity of each foot 22(the changing rate of a foot position) reaches zero or substantiallyzero by expected landing time and the acceleration of each foot 22 alsoreaches zero or substantially zero at the expected landing time when themovement stops. This means that the ground acceleration also becomeszero or substantially zero at the landing instant. Hence, the landingimpact will be further restrained. Especially, even if actual landingtime of the robot 1 deviates from desired landing time, the impact nolonger increases much. Supplementally, the number of stages of the unitfilters of the finite-duration setting filter may be two to make settingso that the ground speed of each foot 22 reaches zero or substantiallyzero at expected landing time. In this case, however, the accelerationof each foot 22 at expected landing time does not usually become zero.

Regarding a foot posture, after each foot 22 lands at its heel atexpected landing time, the foot continues to move until substantiallythe entire sole of the foot 22 comes in contact with a floor. For thisreason, the time at which substantially the entire sole of the foot 22comes in contact with the floor is set to the above specified time, andthe foot posture trajectory is generated by the finite-duration settingfilter.

In the first reference example, the foot position trajectory has beengenerated using the finite-duration setting filter. Alternatively,however, a desired foot position trajectory may be generated using afunction, such as a polynomial, that is set such that the changing rateof a foot position at the expected landing time (a time differentialvalue of a foot position) reaches zero or substantially zero and furtherthe changing acceleration of the foot position at the expected landingtime (a time differential value of the changing rate) reaches zero orsubstantially zero. This applies also to the generation of a desiredfoot posture trajectory. However, regarding the generation of thedesired foot posture trajectory, a function, such as a polynomial, isset such that the changing rate of the posture of each foot 22 and thechanging acceleration thereof reaches zero or substantially zero at thetime when substantially the entire sole of each foot 22 comes in contactwith a floor, as described above.

A desired floor reaction force vertical component trajectory is set asshown in, for example, FIG. 6. In the first reference example, the shapeof a desired floor reaction force vertical component trajectory in arunning gait (strictly speaking, the shape in a single stance period) isspecified to be trapezoidal (a shape projecting to an increasing side ofa floor reaction force vertical component). The height of the trapezoidand the time of a bending point are regarded as gait parameters defininga desired floor reaction force vertical component trajectory, and thegait parameters (floor reaction force vertical component trajectoryparameters) are determined. In a floating period of a running gait, thedesired floor reaction force vertical component is steadily set to zero.A desired floor reaction force vertical component trajectory isdesirably set so that it is virtually continuous (so that values are notdiscontinuous), as in the case of the present example. This is forensuring smooth operations of joints of the robot 1 when controlling afloor reaction force. The term “virtually continuous” means that askipped value that inevitably takes place when a trajectory that iscontinuous in an analog fashion (a continuous trajectory in a truemeaning) is digitally expressed by a discrete-time system does not causethe continuity of the trajectory to be lost.

A desired ZMP trajectory is set as follows. In the running gait shown inFIG. 5, the robot 1 lands at the heel of the foot 22 of a supportingleg, and then kicks at the tiptoe of the foot 22 of the supporting legto jump into the air. Lastly, the robot 1 lands at the heel of the foot22 of a free leg, as described above. Therefore, as shown in the upperdiagram of FIG. 7, the desired ZMP trajectory in the single stanceperiod is set such that it takes the heel of the foot 22 of thesupporting leg as its initial position, and then extends to the centerin the longitudinal direction of the foot 22 in the period in whichsubstantially the entire sole of the foot 22 of the supporting leg comeson contact with the ground, and thereafter, reaches the tiptoe of thefoot 22 of the supporting leg by floor leaving time. Here, the upperdiagram of FIG. 7 shows a desired ZMP trajectory in an X-axis direction(longitudinal direction), while a lower diagram of FIG. 7 shows adesired ZMP trajectory in a Y-axis direction (lateral direction). Thedesired ZMP trajectory in the Y-axis direction in a single stance periodis set at the same position as the central position of an ankle joint ofa supporting leg 2 in the Y-axis direction, as shown in the lowerdiagram of FIG. 7.

In a running gait, after a single stance period ends, both legs 2, 2leave a floor, and the floor reaction force vertical component becomeszero. When the floor reaction force vertical component is zero, that is,during a floating period, the total center of gravity of the robot 1 issubject to free fall motion, and an angular momentum change about thetotal center of gravity is zero. At this time, the moment of a resultantforce of gravity and an inertial force that acts on the robot 1 is zeroat an arbitrary point of a floor, so that a desired ZMP is indefinite.This means that any point of the floor satisfies a condition of ZMPrepresented by “a point of action at which the horizontal component ofthe moment, in which a resultant force of gravity and an inertial forceacts, is zero.” In other words, setting the desired ZMP at an arbitrarypoint satisfies a dynamic balance condition in that the horizontalcomponent of the moment in which the above resultant force acts aboutthe desired ZMP is zero. Hence, the desired ZMP may be setdiscontinuously. For example, the desired ZMP may be set so that it doesnot move from a desired ZMP position when leaving a floor (when a singlestance period ends) in a floating period, and it moves discontinuously(in steps) to a desired ZMP position for landing at the end of thefloating period. In the first reference example, however, the positionof the desired ZMP trajectory in the X-axis direction in a floatingperiod has been set so as to continuously move to the landing positionof the heel of the foot 22 of a free leg from the tiptoe of the foot 22of a supporting leg by the time the next free leg 2 lands, as shown inthe upper diagram of FIG. 7. Further, as shown in the lower diagram ofFIG. 7, the position of the desired ZMP trajectory in the Y-axisdirection in a floating period has been set so as to continuously moveto the Y-axis directional position of the center of the ankle joint of afree leg from the Y-axis directional position of the center of the anklejoint of a supporting leg 2 by the time the next free leg 2 lands. Inother words, the desired ZMP trajectory has been set so that it iscontinuous (virtually continuous) in all periods of a gait. As it willbe discussed hereinafter, a desired gait has been generated so that amoment of the resultant force of gravity and an inertial force(excluding a vertical component) about the desired ZMP becomes zero (tobe more specific, a desired body position/posture trajectory has beenadjusted). Taking an approximation error into account, the desired ZMPtrajectory is desirably set to be continuous (virtually continuous) alsoin a floating period in order to ensure a smooth generated gait.However, a dynamic model, which is used in the first reference exampleand which will be discussed later, makes it possible to uniquelygenerate a desired gait that sets the horizontal component of a momentabout a desired ZMP at a certain value (the value is zero in the firstreference example, whereas it is not necessarily zero in embodiments,which will be described hereinafter) independently of the position of adesired ZMP. Therefore, the desired ZMP does not have to be alwayscontinuous.

In the first reference example, the positions and time of the bendingpoints of the desired ZMP trajectory as shown in FIG. 7 are set as ZMPtrajectory parameters (parameters defining the desired ZMP trajectory).The meaning of “virtually continuous” of the aforementioned ZMPtrajectory is the same as that in the case of the above floor reactionforce vertical component trajectory.

The ZMP trajectory parameters are determined such that a high stabilitymargin is secured and no sudden change takes place. Here, a state inwhich a desired ZMP exists near the center of a least convex polygon(so-called supporting polygon) that includes a ground contact surface ofthe robot 1 indicates a high safety margin (refer to Japanese UnexaminedPatent Application Publication No. 10-86081 for more detail). Thedesired ZMP trajectory shown in FIG. 7 has been set to meet such acondition.

A desired body position/posture, a desired foot position/posture, and areference body posture, which will be discussed hereinafter, aredescribed in terms of a global coordinate system. The global coordinatesystem is a coordinate system fixed to a floor. More specifically, asupporting leg coordinate system to be discussed hereinafter is used asthe global coordinate system.

In the first reference example, the gait generating device 100 generatesa reference body posture in addition to a desired body posture. Thereference body posture is a body posture generated directly on the basisof requests regarding a gait (requests from a unit, such as an actionscheduler, or from an external source (the joystick 73 or the like) sentto the gait generating device 100).

A desired body posture (representing hereinafter a desired body postureunless “reference” is added) is generated such that it follows or agreeswith a reference body posture in a long term.

In walking, generally, a desired body posture may be always set to agreewith a reference body posture as in the case of an embodiment disclosedin the description of PCT Kokai publication WO/02/40224. Although thePCT Kokai publication WO/02/40224 does not refer to the concept of thereference body posture, it explicitly and preferentially gives desiredbody posture patterns, which is equivalent to steady agreement ofdesired body postures with a reference body posture.

However, in a gait including a floating period, as in running, orwalking on a low-friction floor surface, simply adjusting a bodyhorizontal acceleration or the like is not enough to satisfy a dynamicbalance condition while maintaining a floor reaction force horizontalcomponent and a floor reaction force vertical component of a desiredgait within a permissible range (or within a friction limit) at the sametime.

In the first reference example, therefore, a desired body posture isdeliberately deviated from a reference body posture, as necessary. To bemore specific, motion modes explained below are generated in a combinedmanner so as to satisfy the dynamic balance condition while having afloor reaction force horizontal component and a floor reaction forcemoment vertical component of a desired gait falling within a permissiblerange (or within a friction limit).

As shown in FIG. 8, when the robot 1 is in a certain motion state, ifonly a body horizontal acceleration is perturbated (slightly changed), atotal center-of-gravity horizontal acceleration and an angular momentumabout the total center-of-gravity of the robot 1 are perturbated. Morespecifically, perturbating the body horizontal acceleration perturbatesthe floor reaction force moment horizontal component about a desired ZMP(a component about the horizontal axis) and the floor reaction forcehorizontal component without perturbating the floor reaction forcevertical component that dynamically balances with a resultant force ofan inertial force and gravity of the robot 1 produced by theperturbation of the body horizontal acceleration (without perturbating atotal center-of-gravity vertical acceleration of the robot 1). Themotion mode that perturbs the body horizontal acceleration of the robot1 as described above is referred to as a body translational mode.

In other words, a motion in which the floor reaction force momenthorizontal component about the desired ZMP and the floor reaction forcehorizontal component are changed without changing the floor reactionforce vertical component is referred to as the body translational mode.In the body translational mode, the floor reaction force moment verticalcomponent (the component about the vertical axis) is also perturbated;however, no attention will be paid to this aspect in this case.

A change in the floor reaction force moment horizontal component perunit acceleration at this time is denoted by ΔMp and a change in thefloor reaction force horizontal component per unit acceleration isdenoted by ΔFp. If the body 3 is horizontally accelerated forward in thesituation illustrated in FIG. 8, then ΔMp and ΔFp act in the directionsof the arrows shown in FIG. 8.

To facilitate perceptual understanding, the floor reaction force thatbalances with the resultant force of an inertial force and gravitygenerated by a motion has been used for expression. However, it istheoretically more accurate to express using the resultant force of aninertial force and gravity. The above resultant force and the floorreaction force have the same magnitude but opposite directions.

In comparison with the above, if the body inclination angularacceleration (the angular acceleration of the inclination angle of thebody 3) is perturbated about a certain point Pr from a certain motionstate of the robot 1, as shown in FIG. 9, then the angular momentum(excluding the component about the vertical axis) about the totalcenter-of-gravity is perturbated, while the total center-of-gravity ofthe robot 1 is not perturbated. This means that perturbating the bodyinclination angle acceleration about the point Pr perturbates the floorreaction force moment horizontal component about a desired ZMP withoutperturbating the floor reaction force vertical component and the floorreaction force horizontal component. The motion mode in which the bodyinclination angle acceleration of the robot 1 is perturbated asdescribed above is referred to as the body inclination mode.

In other words, the motion in which the floor reaction force momenthorizontal component about a desired ZMP is changed without changing afloor reaction force vertical component and a floor reaction forcehorizontal component is called the body inclination mode.

A change in the floor reaction force moment horizontal component perunit angular acceleration at this time is denoted by ΔMr and a change inthe floor reaction force horizontal component per unit angularacceleration is denoted by ΔFr. ΔFr is zero. If an angular accelerationof a body inclination angle is generated to cause the body 3 to leanforward in the situation shown in FIG. 9, then ΔMr acts in the directionof the arrow shown in FIG. 9.

Further, if a body yaw angle acceleration (the rotational angularacceleration about the vertical axis of the body 3) is perturbated abouta certain point Pq from a certain motion state of the robot 1, as shownin FIG. 10, then the angular momentum vertical component about the totalcenter-of-gravity is perturbated, while the total center-of-gravity ofthe robot 1 is not perturbated. Incidentally, if the totalcenter-of-gravity of the robot 1 is not perturbated, then theperturbation of the angular momentum vertical component does not dependon a point of action. Hence, perturbating the body yaw angularacceleration about the point Pq perturbates the floor reaction forcemoment vertical component about a desired ZMP without perturbating thefloor reaction force vertical component, the floor reaction forcehorizontal component, and the floor reaction force moment horizontalcomponent. The motion mode in which the body yaw angular acceleration ofthe robot 1 is perturbated as described above is referred to as the bodyyaw rotation mode.

In other words, the body motion in which the floor reaction force momentvertical component about a desired ZMP is changed without changing afloor reaction force vertical component, a floor reaction forcehorizontal component, and a floor reaction force moment horizontalcomponent is called the body yaw rotation mode.

A change in the floor reaction force moment vertical component per unitangular acceleration at this time is denoted by ΔMbz, and a change inthe floor reaction force horizontal component per unit angularacceleration is denoted by ΔFb. ΔFb is zero. If the body 3 is rotated inthe direction of the arrow at the unit angular acceleration (rotated atan angular acceleration βb=1) in the situation shown in FIG. 10, thenΔMbz acts in the direction of the arrow shown in FIG. 10.

In the motion shown in FIG. 10, the body 3 has been rotated so that thepositions of the distal ends of both arms 5, 5 remain unchanged asobserved from the supporting leg coordinate system (the coordinatesystem fixed to a floor). However, a motion in which an arm 5 is rotatedtogether with the body 3 without changing the relative position/postureof the arm 5 in relation to the body 3 may be defined as the body yawrotation mode. In this case, however, a motion equation to be discussedhereinafter has to be slightly changed.

Further, if the distal ends of both arms 5, 5 are perturbatedlongitudinally in opposite directions from each other from a motionstate of the robot 1, as illustrated in FIGS. 11( a) and (b), then theangular momentum vertical component about the total center-of-gravity isperturbated, while the total center-of-gravity of the robot 1 is notperturbated. Hereinafter, this motion mode will be referred to as anantiphase arm swing mode. In other words, the arm swing motion mode inwhich the floor reaction force moment vertical component about a desiredZMP is perturbated without perturbating a floor reaction force verticalcomponent, a floor reaction force horizontal component, and a floorreaction force moment horizontal component is referred to as theantiphase arm swing mode.

A motion in which a right arm 5R is moved forward by a unit amount and aleft arm 5L is moved backward by a unit amount is referred to as anantiphase arm swing of a unit angle. FIGS. 11( a) and (b) illustrate astate wherein an antiphase arm swing angle is θaz.

A change in the floor reaction force moment vertical component per unitangular acceleration in the antiphase arm swing mode is denoted by ΔMaz,and a change in the floor reaction force horizontal component per unitangular acceleration is denoted by ΔFa. ΔFa is zero. In the situationshown in FIGS. 11( a) and (b), if the right arm 5R is acceleratedforward, while the left arm 5L is accelerated backward (swinging at anangular acceleration βa>0), then a floor reaction force moment verticalcomponent Maz acts in the direction of the arrow (a positive directionof the vertical axis) shown in FIG. 11( a).

A description will now be given of a dynamic model of the robot 1 usedin the first reference example. In the first reference example, asimplified (approximated) dynamic model shown below is used. However,regarding the dynamic model shown below, a kinematics model (a modelrepresenting the structures and dimensions of joints and links, i.e., amodel representing a relationship between joint displacements and thepositions/postures of links) will be also necessary.

FIG. 12 shows a dynamic model of the robot 1 used in the first referenceexample. As illustrated, the dynamic model is a model composed of atotal of three mass points, namely, two mass points 2 m, 2 mcorresponding to the legs 2 of the robot 1 and a mass point 3 mcorresponding to the body 3, and four flywheels FHx, FHy, FHbz, and FHazhaving inertias but no mass. The flywheels FHx, FHy, FHbz, and FHaz canbe rotated about an X-axis (longitudinal axis), a Y-axis (lateral axis),a Z-axis (vertical axis), and a Z-axis (vertical axis), respectively.This dynamic model is decoupled, that is, the dynamic model isconstructed such that the dynamics (the dynamics of the mass points 2 m,2 m) of the legs 2, 2, the dynamics of the body 3 (the dynamics of themass point 3 m and the flywheels FHx, FHy and FHbz), and the dynamics ofthe arms 5, 5 (the dynamics of the flywheel FHaz) do not interfere witheach other, and the dynamics of the entire robot 1 is represented bytheir linear connection. In addition, a relationship between a motion ofthe body 3 and a floor reaction force is separated into a relationshipbetween a translational motion of the body 3 (body translation mode) anda floor reaction force, a relationship between an inclination motion ofthe body 3 (body inclination mode) and a floor reaction force, arelationship between a yaw rotational motion of the body 3 (body yawrotation mode) and a floor reaction force, and a relationship between anantiphase arm swing motion of both arms 5, 5 (antiphase arm swing mode)and a floor reaction force. To be more specific, a floor reaction forcegenerated by a horizontal motion of the body mass point 3 m correspondsto a floor reaction force generated by a horizontal translational motionof the body 3 (body translation mode), and a floor reaction forcegenerated by a rotational motion of the flywheels FHx and FHycorresponds to a floor reaction force generated by a rotational motionof an inclination angle of the body 3 (body inclination mode). Therotational motion of the flywheel FHx corresponds to the rotationalmotion of an inclination angle of the body 3 in the roll direction(about the X-axis), and the rotational motion of the flywheel FHycorresponds to the rotational motion of an inclination angle of the body3 in the pitch direction (about the y-axis). A floor reaction forcegenerated by the rotational motion of the flywheel FHbz corresponds to afloor reaction force generated by a yaw rotational motion of the body 3(the body yaw rotation mode). A floor reaction force generated by therotational motion of the flywheel FHaz corresponds to a floor reactionforce generated by an antiphase arm swing motion (the antiphase armswing mode).

The mass of the arms of the robot 1 is assumed to be included in thebody 3, and the body mass point 3 m has a mass that includes the mass ofthe arms 5, 5.

For the convenience of explanation, variables and parameters related tothe dynamic model will be defined as follows. Each of the mass points 2m, 2 m and 3 m corresponds to a representative point of a part withwhich it is associated or a point uniquely decided geometrically fromthe position/posture of the part. For instance, the position of the masspoint 2 m of a supporting leg 2 is defined as the point above theaforesaid representative point of the sole of the foot 22 of the leg 2by a predetermined distance.

-   Zsup: Supporting leg mass point vertical position-   Zswg: Free leg mass point vertical position-   Zb: Body mass point vertical position (usually different from a    vertical body position)-   ZGtotal: Overall gravitational center vertical position-   Xsup: Supporting leg mass point X position-   Ysup: Supporting leg mass point Y position-   Xswg: Free leg mass point X position-   Yswg: Free leg mass point Y position-   Xb: Body mass point X position (The body mass point position is the    position offset by a predetermined distance in the longitudinal    direction of the body from the aforesaid point Pr. The offset is    determined such that the gravitational center position of an exact    model and the gravitational center position of the present dynamic    model agree with each other as much as possible in an upright stance    or the like. This is usually different from a horizontal body    position.)-   Yb: Body mass point Y position-   XGtotal: Overall gravitational center horizontal X position-   YGtotal: Overall gravitational center horizontal Y position-   θbx: Body inclination angle about X-axis relative to vertical    direction-   θby: Body inclination angle about Y-axis relative to vertical    direction-   θbz: Body yaw rotational angle-   θaz: Antiphase arm swing angle-   mb: Body mass point mass-   msup: Supporting leg mass point mass-   mswg: Free leg mass point mass-   mtotal: Total mass of robot (=mtotal+msup+mswg)-   J: Body inertial moment (Equivalent inertial moment in the body    inclination mode. In other words, this is an inertial moment of FHx    and FHy. Usually, it does not agree with the inertial moment of the    body 3 part of the actual robot 1.)-   Jbz: Body inertial moment about a vertical axis (Equivalent inertial    moment in the body yaw rotation mode. Usually, this does not agree    with the inertial moment of the body 3 part of the actual robot 1.)-   Jaz: Arm swing inertial moment about a vertical axis (Equivalent    inertial moment in antiphase arm swing to cancel a spin. In other    words, it is an inertial moment of FHz.)-   Fx: Floor reaction force X component (More specifically, a    longitudinal (X-axis) component of a translational floor reaction    force)-   Fy: Floor reaction force Y component (More specifically, a lateral    (Y-axis) component of a translational floor reaction force)-   Fz: Floor reaction force vertical component (More specifically, a    vertical (Z-axis) component of a translational floor reaction force.    This is equivalent to a desired translational floor reaction force    vertical component in the first reference example.)-   Mx: X component of a floor reaction force moment about a desired ZMP    (More specifically, a component about a longitudinal axis (X-axis)    of a floor reaction force moment)-   My: Y component of a floor reaction force moment about a desired ZMP    (More specifically, a component about a lateral axis (Y-axis) of a    floor reaction force moment)-   Mz: Z component of a floor reaction force moment about a desired ZMP    (More specifically, a component about a vertical axis (Z-axis) of a    floor reaction force moment)

An X position and a Y position of each of the mass points 2 m and 3 mmean a position in the longitudinal direction (X-axis direction) and aposition in the lateral direction (Y-axis direction), respectively. Inthe first reference example, a positional relationship between aposition of the mass point 2 m of each leg 2 and a position of the foot22 of the leg 2 (a position of a predetermined representative point ofthe foot 22) is determined in advance, so that one of the positions isdecided, then the other position is uniquely decided. Further, apositional relationship between the body mass point 3 m and the positionof the body 3 (a position of a predetermined representative point of thebody 3) is determined in advance on the basis of a posture angle of thebody 3 (hereinafter, regarding the body, a posture angle will mean aninclination angle and a yaw angle), and if a position and a postureangle of one of them are determined, then a position of the other isuniquely determined.

For an arbitrary variable X, dX/dt denotes first order differentiationof X, and d2X/dt2 denotes second order differentiation. Therefore, ifthe variable X denotes displacement, then dX/dt means velocity andd2X/dt2 means acceleration. g denotes a gravity acceleration constant.Here, g takes a positive value.

A motional equation of the above dynamic model (an equation expressing adynamic balance condition) is represented by equation 01, equation 02x,equation 02y, equation 03x, equation 03y, and equation 03z.

$\begin{matrix}{{Fz} = {{{mb}*\left( {g + {{\mathbb{d}\; 2}{{Zb}/{\mathbb{d}t}}\; 2}} \right)} + {{msup}*\left( {g + {{\mathbb{d}2}{{Zsup}/{\mathbb{d}t}}\; 2}} \right)} + {{mswg}*\left( {g + {{\mathbb{d}2}{{Zswg}/{\mathbb{d}t}}\; 2}} \right)}}} & {{Equation}\mspace{14mu} 01} \\{{Fx} = {{{mb}*{\mathbb{d}2}{{Xb}/{\mathbb{d}t}}\; 2} + {{msup}*{\mathbb{d}2}{{Xsup}/{\mathbb{d}t}}\; 2} + {{mswg}*{\mathbb{d}2}{{Xswg}/{\mathbb{d}t}}\; 2}}} & {{Equation}\mspace{14mu} 02x} \\{{Fy} = {{{mb}*{\mathbb{d}2}{{Yb}/{\mathbb{d}t}}\; 2} + {{msup}*{\mathbb{d}2}{{Ysup}/{\mathbb{d}t}}\; 2} + {{mswg}*{\mathbb{d}2}{{Yswg}/{\mathbb{d}t}}\; 2}}} & {{Equation}\mspace{14mu} 02y} \\{{M\; x} = {{{mb}*\left( {{Yb} - {Yzmp}} \right)*\left( {g + {{\mathbb{d}2}{{Zb}/{\mathbb{d}t}}\; 2}} \right)} - {{mb}*\left( {{Zb} - {Zzmp}} \right)*\left( {{\mathbb{d}2}{{Yb}/{\mathbb{d}t}}\; 2} \right)} + {{msup}*\left( {{Ysup} - {Yzmp}} \right)*\left( {g + {{\mathbb{d}2}{{Zsup}/{\mathbb{d}t}}\; 2}} \right)} - {{msup}*\left( {{Zsup} - {Zzmp}} \right)*\left( {{\mathbb{d}2}{{Ysup}/{\mathbb{d}t}}\; 2} \right)} + {{mswg}*\left( {{Yswg} - {Yzmp}} \right)*\left( {g + {{\mathbb{d}2}{{Zswg}/{\mathbb{d}t}}\; 2}} \right)} - {{mswg}*\left( {{Zswg} - {Zzmp}} \right)*\left( {{\mathbb{d}2}\;{{Yswg}/{\mathbb{d}t}}\; 2} \right)} + {J*{\mathbb{d}2}\;\theta\;{{bx}/{\mathbb{d}t}}\; 2}}} & {{Equation}\mspace{14mu} 03x} \\{{My} = {{{- {mb}}*\left( {{Xb} - {Xzmp}} \right)*\left( {g + {{\mathbb{d}2}{{Zb}/{\mathbb{d}t}}\; 2}} \right)} + {{mb}*\left( {{Zb} - {Zzmp}} \right)*\left( {{\mathbb{d}\; 2}{{Xb}/{\mathbb{d}t}}\; 2} \right)} - {{msup}*\left( {{Xsup} - {Xzmp}} \right)*\left( {g + {{\mathbb{d}2}\;{{Zsup}/{\mathbb{d}t}}\; 2}} \right)} + {{msup}*\left( {{Zsup} - {Zzmp}} \right)*\left( {{\mathbb{d}2}\;{{Xsup}/{\mathbb{d}t}}\; 2} \right)} - {{mswg}*\left( {{Xswg} - {Xzmp}} \right)*\left( {g + {{\mathbb{d}2}{{Zswg}/{\mathbb{d}t}}\; 2}} \right)} + {{mswg}*\left( {{Zswg} - {Zzmp}} \right)*\left( {{\mathbb{d}2}{{Xswg}/{\mathbb{d}t}}\; 2} \right)} + {J*{\mathbb{d}2}\theta\;{{by}/{\mathbb{d}t}}\; 2}}} & {{Equation}\mspace{14mu} 03y} \\{{Mz} = {{{mb}*\left( {{Xb} - {Xzmp}} \right)*\left( {{\mathbb{d}2}{{Yb}/{\mathbb{d}t}}\; 2} \right)} - {{mb}*\left( {{Yb} - {Yzmp}} \right)*\left( {{\mathbb{d}2}{{Xb}/{\mathbb{d}t}}\; 2} \right)} + {{msup}*\left( {{Xsup} - {Xzmp}} \right)*\left( {{\mathbb{d}2}\;{{Ysup}/{\mathbb{d}t}}\; 2} \right)} - {{msup}*\left( {{Ysup} - {Yzmp}} \right)*\left( {{\mathbb{d}2}\;{{Xsup}/{\mathbb{d}t}}\; 2} \right)} + {{mswg}*\left( {{Xswg} - {Xzmp}} \right)*\left( {{\mathbb{d}2}{{Yswg}/{\mathbb{d}t}}\; 2} \right)} - {{mswg}*\left( {{Yswg} - {Yzmp}} \right)*\left( {{\mathbb{d}2}{{Xswg}/{\mathbb{d}t}}\; 2} \right)} + {{Jbz}*{\mathbb{d}2}\theta\;{{bz}/{\mathbb{d}t}}\; 2} + {{Jaz}*{\mathbb{d}2}\;\theta\;{{az}/{\mathbb{d}t}}\; 2}}} & {{Equation}\mspace{14mu} 03z}\end{matrix}$

Furthermore, for a total center-of-gravity position of the robot, thefollowing relational expressions hold:ZGtotal=(mb*Zb+msup*Zsup+mswg*Zswg)/mtotal  Equation 04XGtotal=(mb*Xb+msup*Xsup+mswg*Xswg)/mtotal  Equation 05xYGtotal=(mb*Yb+msup*Ysup+mswg*Yswg)/mtotal  Equation 05y

The following will show a relationship between the above dynamic modeland the above ΔFp, ΔMp, ΔFr, and ΔMr.

The above ΔFp is a perturbation amount of Fx or Fy when d2Xb/dt2 ord2Yb/dt2 is perturbated by a unit amount in equation 02x or equation02y, so that it is determined according to the following equation:ΔFp=mb  Equation 06This means that the change ΔFp of a floor reaction force horizontalcomponent per unit acceleration in the direction of each horizontal axis(X-axis, Y-axis) in the body translation mode corresponds to the mass ofthe body mass point 3 m of the dynamic model.

The above ΔMp is a perturbation amount of My or Mx when d2Xb/dt2 ord2Yb/dt2 is perturbated by a unit amount in equation 03y or equation03x, so that it is determined according to the following equation:ΔMp=mb*(Zb−Zzmp)  Equation 07This means that the change ΔMp of a floor reaction force momenthorizontal component per unit acceleration in the direction of eachhorizontal axis (X-axis, Y-axis) in the body translation mode isobtained by multiplying a body mass point mass of the dynamic model by aheight (vertical position) of the body mass point 3 m from a desiredZMP. The relationship between the positions of the body mass point 3 mand the desired ZMP and the motion of the body mass point 3 mcorresponds to the behavior of an inverted pendulum obtained when thebody mass point 3 m is associated with an inverted pendulum mass pointand when the desired ZMP is associated with an inverted pendulumsupporting point. To be more accurate, ΔMp in the Y-axis direction isobtained by reversing the sign of the right side of equation 07.

The above ΔFr is a perturbation amount of Fx or Fy when d2θby/dt2 isperturbated by a unit amount in equation 02x or equation 02y, so that itis determined according to the following equation:ΔFr=0  Equation 08This means that the change ΔFr of a floor reaction force horizontalcomponent per unit acceleration in the direction of each horizontal axis(X-axis, Y-axis) in the body inclination mode is zero.

The above ΔMr is a perturbation amount of Mx or My when d2θbx/dt2 ord2θby/dt2 is perturbated by a unit amount in equation 03x or equation03y, so that it is determined according to the following equation:ΔMr=J  Equation 09

This means that the change ΔMr of a floor reaction force momenthorizontal component per unit acceleration in the direction of eachhorizontal axis (X-axis, Y-axis) in the body inclination modecorresponds to the inertial moments of horizontal axis flywheels (FHxand FHy).

The above ΔMbz is a perturbation amount of Mz when d2θbz/dt2 isperturbated by a unit amount in equation 03z, so that it is determinedaccording to the following equation:ΔMbz=Jbz  Equation 09bThis means that the change ΔMbz of a floor reaction force momentcomponent per unit acceleration in the body yaw rotation modecorresponds to the inertial moment of a flywheel FHbz corresponding tobody yaw rotation.

The above ΔMaz is a perturbation amount of Mz when d2θaz/dt2 isperturbated by a unit amount in equation 03z, so that it is determinedaccording to the following equation:ΔMaz=Jaz  Equation 09aThis means that the change ΔMaz of a floor reaction force momentcomponent per unit angular acceleration of an antiphase arm swingcorresponds to the inertial moment of a flywheel FHaz corresponding toan arm swing.

The gait generating device 100 in the first reference example generatesa desired gait for one step in order, the desired gait (the desired gaitin the narrow sense described above) for one step from the moment oneleg 2 of the robot 1 lands to the moment the other leg 2 lands. Hence,for the running gait shown in FIG. 5 to be generated in the firstreference example, a desired gait from the beginning of a single stanceperiod to the end of the following floating period (the beginning of thenext single stance period) is generated in sequence. Here, a desiredgait that is being newly generated will be referred to as a “currenttime gait,” the next desired gait will be referred to as a “next gait,”and a desired gait after next will be referred to as a “next but onetime gait.” Furthermore, a desired gait generated one step before the“current time gait” will be referred to as a “last time's gait.”

When the gait generating device 100 newly generates a current time gait,expected positions/postures of landing of the foot 22 of a free leg andrequired values (requests) of expected landing time for the next twosteps of the robot 1 are input as required parameters to the gaitgenerating device 100 (or the gait generating device 100 reads therequired parameters from a memory). Then, the gait generating device 100uses these required parameters to generate a desired bodyposition/posture trajectory, a desired foot position/posture trajectory,a desired ZMP trajectory, a desired floor reaction force verticalcomponent trajectory, a desired arm posture trajectory, etc. At thistime, some of the gait parameters specifying these trajectories arecorrected, as necessary, to secure continuity of walking.

Taking the generation of the running gait shown in FIG. 5 as an example,gait generation processing of the gait generating device 100 in thefirst reference example will be explained in detail with reference toFIG. 13 to FIG. 46. FIG. 13 is a flowchart (structured flowchart)illustrating a main routine of the gait generation processing carriedout by the gait generating device 100.

First, various initializing operations, including initialization of timet to zero, are performed in S010. This processing is implementedprimarily when starting up the gait generating device 100. Next, theprocessing proceeds to S014 via S012 and waits for a timer interrupt foreach control cycle (the calculation processing cycle of the flowchartshown in FIG. 13). The control cycle is denoted by Δt.

Then, the processing proceeds to S016 and determines whether a shift ina gait is taking place. If a shift in the gait is taking place, then theprocessing proceeds to S018, or if a shift in a gait is not takingplace, then it proceeds to S030. Here, “the shift in a gait” means atiming at which the generation of the last time's gait has beencompleted and the generation of the current time gait is about to start.For instance, a control cycle following the control cycle in which thegeneration of a last time's gait has been completed refers to the shiftin a gait.

When proceeding to S018, time t is initialized to zero. The gaitgenerating device 100 then proceeds to S020 and reads a next time gait'ssupporting leg coordinate system, a next but one time gait's supportingleg coordinate system, a current time gait cycle, and a next time gaitcycle. These supporting leg coordinate systems and the gait cycles aredetermined by the above required parameters. More specifically, in thefirst reference example, the required parameters supplied to the gaitgenerating device 100 from the joystick 73 or the like include requiredvalues of expected landing positions/postures (foot positions/posturesin a state wherein the foot 22 has been rotated without slippage suchthat its sole is substantially in full contact with a floor surfaceafter landing) and expected landing time of the foot 22 of a free legfor up to two steps ahead. The required value for the first step and therequired value for the second step are supplied to the gait generatingdevice 100 as the values associated with a current time gait and a nextgait, respectively, before the generation of the current time gait isbegun (the shift in a gait in S016 mentioned above). These requiredvalues can be changed in the middle of generating the current time gait.

Then, the next time gait's supporting leg coordinate system isdetermined on the basis of the required value of the expected landingposition/posture of the free leg foot 22 of the first step (the free legfoot 22 in the current time gait) in the above required parameters.

Referring to, for example, FIG. 16, it is assumed that the requiredvalue for an expected landing position/posture of the free leg foot 22(22L in the figure) related to the current time gait (first step)specifies a position/posture obtained by moving by xnext and ynext inthe X-axis direction (in the longitudinal direction of a supporting legfoot 22R of the current time gait) and in the Y-axis direction (in thelateral direction of the supporting leg foot 22R of the current timegait), respectively, of a current time's gait supporting leg coordinatesystem, and by rotating about the Z-axis (about the vertical axis) byθznext with respect to a landing position/posture of the supporting legfoot 22 (22R in the figure) of the current time gait. Here, thesupporting leg coordinate system is a global coordinate system (acoordinate system fixed to a floor) in which a point, at which aperpendicular line extended onto a floor surface from the center of theankle of a supporting leg foot 2 intersects with the floor surface (thispoint agreeing with a representative point of the foot 22 in a state,wherein substantially the entire surface of the sole of the supportingleg foot 22 is in contact with the floor surface in the first referenceexample), in a state wherein the supporting leg foot 22 is set in ahorizontal posture (more generally, a posture parallel to the floorsurface) and substantially the entire surface of the sole of thesupporting leg foot 22 is in contact (in close contact) with the floorsurface, is defined as an origin thereof, and a horizontal plane passingthe origin is defined as an XY plane. In this case, the X-axis directionand the Y-axis direction correspond to the longitudinal direction andthe lateral direction, respectively, of the supporting leg foot 22. Theorigin of the supporting leg coordinate system does not have to agreewith the representative point of the foot 22 (a point representing theposition of the foot 22) in the state wherein substantially the entiresurface of the sole of the supporting leg foot 22 is in contact with thefloor surface. Alternatively, the origin may be set at a point on thefloor surface that is different from the representative point.

At this time, the next time gait's supporting leg coordinate system is acoordinate system that takes, as its origin, the representative point(more specifically, a point on a floor that agrees with therepresentative point) of the foot 22L in a case where the foot 22 islanded according to a required value of the expected landingposition/posture of the free leg foot 22L of the current time gait asillustrated (in a case where the representative point of the foot 22 ismade to agree with the required value of an expected landing positionand the posture (orientation) of the foot 22 is made to agree with therequired value of an expected landing posture), the longitudinaldirection and the lateral direction of the foot 22L in the horizontalplane passing the origin corresponding to an X′-axis direction andY′-axis direction, respectively.

In the same manner described above, a next but one time gait'ssupporting leg coordinate system (refer to the X″ Y″ coordinates shownin FIG. 16) is determined on the basis of the required values for theexpected landing position/posture of the free leg foot 22 of the secondstep. A current time gait cycle is determined as the duration from theexpected landing time (required value) of the supporting leg foot 22 ofthe current time gait to the expected landing time (required value) ofthe free leg foot 22 of the first step (current time gait). The nexttime gait cycle is determined as the duration from the expected landingtime (required value) of the free leg foot 22 of the first step to theexpected landing time (required value) of the free leg foot 22 of thesecond step.

The required parameters are input to the gait generating device 100 bynecessary manipulation of the joystick 73 in the first referenceexample. Alternatively, however, the required parameters or thepositions/postures and gait cycles of the aforesaid supporting legcoordinate systems associated with the required parameters may be storedin advance as a travel schedule of the robot 1. Alternatively, theaforesaid next time and the next but one time gait's supporting legcoordinate systems and the current time and the next time gait cyclesmay be determined on the basis of commands (requests) from a controldevice, such as the joystick 73, and a travel history of the robot 1 upto that moment.

Subsequently, the processing proceeds to S022 and determines gaitparameters of a normal turning gait as a virtual cyclic gait thatfollows the current time gait. The gait parameters include a foottrajectory parameter defining a desired foot position/posturetrajectory, a reference body posture trajectory parameter defining abody posture trajectory to be based on, a reference arm posturetrajectory parameter defining an arm posture trajectory to be based on,a ZMP trajectory parameter defining a desired ZMP trajectory, and afloor reaction force vertical component trajectory parameter defining adesired floor reaction force vertical component trajectory in the normalturning gait. Furthermore, parameters that define a floor reaction forcehorizontal component permissible range and a floor reaction force momentvertical component permissible range are also included in gaitparameters.

In the present description, “the normal turning gait” is used to mean acyclic gait that does not cause discontinuity in motional states (statesof foot position/posture, body position/posture, etc.) of the robot 1 ina boundary of gait when the gait is repeated (the boundary of a gait foreach step in the first reference example). Hereinafter, “the normalturning gait” may be abbreviated as “the normal gait.”

According to the first reference example, the normal turning gait, whichis a cyclic gait, may be defined as follows. A gait for two steps of therobot 1, i.e., a gait composed of a first turning gait following acurrent time gait and a second turning gait following the first turninggait, as the gait for one cycle. The normal turning gait consists of arepetition of the gait for one cycle. The term “turning” is used here,because it would mean straight advancement when the turning rate is setto zero, and straight advancement can be also included in turning in abroad sense. If a desired gait to be generated is the running gait shownin FIG. 5, then a current time gait of the desired gait is a runninggait that has a single stance period and a floating period. Hence, thefirst turning gait and the second turning gait of the normal turninggait are both gaits that also have a single stance period and a floatingperiod, as in the current time gait. In other words, a basic gait formof the first turning gait and the second turning gait is the same as thecurrent time gait.

Supplemental explanation of the normal turning gait will be added. In abipedal mobile robot, the normal turning gait for one cycle requires thegaits in the aforesaid narrow sense for at least two steps. It isfurther possible to set a complicated normal turning gait using a gaitfor three steps or more as the gait for one cycle. The normal turninggait, however, is used only to determine a divergent component (to bediscussed in detail hereinafter) at the end (finish time) of the currenttime gait. For this reason, using the normal turning gait composed of agait for three or more steps for one cycle will provide low effectdespite the complicated processing for generating the gait. Therefore,the gait for one cycle in the normal turning gait in the first referenceexample is composed of a gait for two steps (the first and the secondturning gaits). For a legged mobile robot having three or more feet, thenumber of gaits for defining the normal turning gait will increaseaccordingly. In the following description, for the convenience ofexplanation, the normal turning gait composed of a plurality of gaits inthe narrow sense (the gait for two steps in the first reference example)will be regarded as the gait for one step.

A normal turning gait is prepared, by the gait generating device 100,for provisional use to determine motional states of the robot 1,including a divergent component or a vertical body position velocity atthe end of a current time gait, a body posture angle, and an angularvelocity thereof, and it is not directly output from the gait generatingdevice 100.

The term “divergent” means that the position of the body 3 of thebipedal mobile robot 1 is undesirably shifted to a position away fromthe positions of both feet 22 and 22, as shown in FIG. 14. The value ofa divergent component is a numeral value indicating how far the positionof the body 3 of the bipedal mobile robot 1 is away from the positionsof both feet 22 and 22 (to be more specific, the origin of a globalcoordinate system (a supporting leg coordinate system) set on thesurface with which a supporting leg foot 22 is in contact).

In the first reference example, gaits are generated using a divergentcomponent as an indicator so that a desired gait can be continuouslygenerated without causing the divergence. However, even if it is aninitial divergent component (divergent component at initial time of thenormal turning gait) of the normal gait, which is a typical example of acontinuous gait (a cyclic gait that permits repetition of a gait of thesame pattern without causing discontinuity of a gait trajectory, andthat does not theoretically diverge after an infinite number ofrepetitions), the initial divergent component is not simply zero. Theinitial divergent component changes if a parameter of a normal gaitchanges. In other words, a proper divergent component changes accordingto a gait form, such as the manner of walking or the manner of running,or the like. In the first reference example, therefore, a normal gaitfollowing a current time gait to be generated is set on the basis ofrequired parameters is involved in the current time gait, and theinitial divergent component of the normal gait is determined, and then acurrent time gait is generated such that the divergent component at theend of the current time gait agrees with the initial divergent componentof the normal gait (more generally, the current time gait is made tocontinue or approximate to the normal gait). The basic guideline forgenerating such gaits is the same as that disclosed in PCT Kokaipublication WO/02/40224 previously proposed by the present applicant.

The first reference example of the present invention does not use alinear dynamic model with three mass points used in the first embodimentof PCT Kokai publication WO/02/40224. Nevertheless, the concept of thedivergent component and a convergent component defined by the equationgiven below can be applied with adequate approximate accuracy to aperturbation of a behavior of a nonlinear dynamic model such as the oneshown in FIG. 12.Divergent component=Body mass point horizontal position+Body mass pointhorizontal velocity/ω0  Equation 10Convergent component=Body mass point horizontal position−Body mass pointhorizontal velocity/ω0′  Equation 11

where the body mass point horizontal position in this case indicates abody mass point horizontal position Xb in the dynamic model shown inFIG. 12.

ω0 and ω0′ take predetermined values. The values of these ω0 and ω0′ aresubstantially the same, although they do not exactly coincide. Further,the values for generating walking gaits in PCT Kokai publicationWO/02/40224 must be slightly changed for running.

More details of the divergent component and the convergent componenthave been given in PCT Kokai publication WO/02/40224, so that no moredescription will be given here.

In the first reference example, in addition to the method disclosed inPCT Kokai publication WO/02/40224, a gait parameter defining a desiredfloor reaction force vertical component trajectory is set, and a totalcenter-of-gravity vertical position of the robot 1 is determined so asto dynamically satisfy the desired floor reaction force verticalcomponent, as will be discussed hereinafter. In this case, a secondorder integrated value of the floor reaction force vertical componentwill define the total center-of-gravity vertical position of the robot1. Hence, if the desired floor reaction force vertical component isimproperly set, then the total center-of-gravity vertical position orthe vertical body position of the robot 1 will be too high or too low.Therefore, the method for setting a desired floor reaction forcevertical component is also an important issue. However, the relationshipbetween a floor reaction force vertical component and a vertical bodyposition is similar to the relationship between ZMP and a horizontalbody position, so that a part of a technique for determining a desiredZMP for setting a proper horizontal body position velocity can beapplied to a technique for determining a desired floor reaction forcevertical component for setting a proper vertical body position velocitysimply by slightly changing a part thereof, as shown in the followingfirst reference example.

Returning to the main subject, in S022, the processing below is carriedout according to the flowchart shown in FIG. 15.

First, in S100, a foot trajectory parameter among the gait parameters ofa normal gait is determined to provide a foot position/posturetrajectory composed of a current time gait, a first turning gait, and asecond turning gait in succession in this order. The following willexplain a specific setting method with reference to FIG. 16. In thefollowing explanation, the foot 22 of a supporting leg 2 will bereferred to as the supporting leg foot and the foot 22 of a free leg 2will be referred to as the free leg foot. Further, “start” and “end”will mean start time and end time of a gait or instantaneous gaits atthe start time and the end time.

The foot trajectory parameter is constructed primarily of thepositions/postures of the supporting leg foot and the free leg foot,respectively, at the start and the end, respectively, of a first turninggait and a second turning gait, and a gait cycle of each turning gait.In the foot trajectory parameter, the free leg foot position/posture atthe start of the first turning gait is defined as the supporting legfoot position/posture at the end of a current time gait observed from anext time gait's supporting leg coordinate system. In this case, thesupporting leg foot 22 at the end of the current time gait is moving inthe air in a running gait. And the supporting leg foot position/postureat the end of the current time gait is determined by generating arequired value of an expected landing position/posture of the free legfoot 22 of a second step in the required parameter (a required value ofan expected landing position/posture in a next time gait of thesupporting leg foot 22 of the current time gait) or a footposition/posture trajectory for reaching a free leg position/posture atthe end of the next time gait determined on the basis of a next but timeone gait's supporting leg coordinate system that corresponds to theabove required value (more specifically, the trajectory observed from anext time gait's supporting leg coordinate system) from the supportingleg foot position/posture at the start of the current time gait (=thefree leg foot position/posture at the end of the last time's gait) byusing the finite-duration setting filter until the end of the currenttime gait.

The free leg foot position/posture at the end of the next time gait isdetermined such that the position/posture of the foot obtained when thefoot 22 is turned from that position/posture by a predetermined angle inthe pitch direction until it reaches a horizontal posture by loweringits tiptoe while holding the foot 22 in contact with the ground agreeswith the position/posture in the next but one time's gait supporting legcoordinate system. In other words, the free leg foot position/posture atthe end of the next time gait is the position/posture of the foot 22 ina state wherein the foot 22 has been turned, from a required value ofthe landing position/posture of the free leg foot 22 of the second stepin the required parameter, by a predetermined angle in the pitchdirection by lifting its tiptoe while holding the foot 22 in contactwith the ground so that it does not slip (a state wherein the heel hasbeen landed with the tiptoe lifted).

Further, the supporting leg foot position/posture at the start of thefirst turning gait is defined as the free leg foot position/posture atthe end of the current time gait observed from the next time gait'ssupporting leg coordinate system. In this case, the free leg footposition/posture at the end of the current time gait is determined onthe basis of the above next time's gait supporting leg coordinate systemor a required value of an expected landing position/posture of the freeleg of the first step (the current time gait) of the required parametercorresponding thereto, as in the case of the free leg footposition/posture at the end of the next time gait. In other words, thefree leg foot position/posture at the end of the current time gait isdetermined such that a representative point of the foot obtained whensubstantially entire surface of the sole of the foot 22 is brought intocontact with a floor surface by turning the foot 22 from theposition/posture so as to lower its tiptoe while holding the foot 22 incontact with the ground agrees with the origin of the next time gait'ssupporting leg coordinate system.

The free leg foot position/posture at the end of the first turning gaitis determined on the basis of a position/posture on the next but onetime gait's supporting leg coordinate system observed from the nexttime's gait supporting leg coordinate system, as in the case of thetechnique for determining the free leg foot position/posture at the endof the current time gait or the free leg foot position/posture at theend of the next time gait. To be more specific, the free leg footposition/posture at the end of the first turning gait is determined suchthat the position/posture of the foot obtained when the foot 22 isturned from that position/posture by a predetermined angle until itreaches a horizontal posture while avoiding a slippage and while holdingthe foot 22 in contact with the ground agrees with the position/posturein the next but one time's gait supporting leg coordinate system asobserved from the next time gait's supporting leg coordinate system.

At the end of the first turning gait, the supporting leg foot 22 is inthe air, being off the floor. To determine the trajectory after thesupporting leg foot 22 leaves the floor, an expected landingposition/posture of the supporting leg foot of the first turning gait isset. The expected landing position/posture of the supporting leg foot ofthe first turning gait is set on the basis of a position/posture on anext but two time gait's supporting leg coordinate system observed fromthe next time gait's supporting leg coordinate system. To be morespecific, the expected landing position/posture of the supporting legfoot of the first turning gait is the position/posture on the next buttwo time gait's supporting leg coordinate system observed from the nexttime gait's supporting leg coordinate system. The next but two timegait's supporting leg coordinate system is set such that the relativeposition/posture relationship between the next but one time gait'ssupporting leg coordinate system and the next but two time gait'ssupporting leg coordinate system agrees with the relativeposition/posture relationship between the current time gait's supportingleg coordinate system and the next time gait's supporting leg coordinatesystem.

The supporting leg foot position/posture at the end of the first turninggait is determined by generating a foot position/posture trajectory forreaching the expected landing position/posture of the supporting legfoot of the first turning gait from the supporting leg footposition/posture at the start of the first turning gait (morespecifically, the trajectory observed from a next time gait's supportingleg coordinate system) by using the finite-duration setting filter untilthe end of the first turning gait, as in the case where the supportingleg foot position/posture at the start of the first turning gait isdetermined.

The free leg foot position/posture at the start of the second turninggait is regarded as the supporting leg foot position/posture at the endof the first turning gait observed from the next but one time gait'ssupporting leg coordinate system. The supporting leg footposition/posture at the start of the second turning gait is regarded asthe free leg foot position/posture at the end of the first turning gaitobserved from the next but one time gait's supporting leg coordinatesystem.

The free leg foot position/posture at the end of the second turning gaitis regarded as the free leg foot position/posture at the end of thecurrent time gait observed from the current time's gait supporting legcoordinate system. The supporting leg foot position/posture at the endof the second turning gait is regarded as the supporting leg footposition/posture at the end of the current time gait observed from thecurrent time's gait supporting leg coordinate system.

The gait cycles of the first turning gait and the second turning gaitare set to be identical to a next time gait cycle. These gait cycles ofthe first turning gait and the second turning gait do not have to be thesame with each other; however, both cycles are preferably determined onthe basis of at least a next time gait cycle. Motion parameters(including a time parameter, such as double stance period duration) ofthe current time gait, the first turning gait, and the second turninggait other than the above described parameters are determined, asnecessary, to satisfy gait conditions (such as an actuator velocityfalling within a permissible range, a movable angle being not exceeded,and no interference with a floor) on the basis of the parametersdetermined above.

Next, the processing proceeds to S102 and determines a reference bodyposture trajectory parameter that defines the reference body posturetrajectory to be followed by a desired body posture. The reference bodyposture does not have to be constant as long as it is set to ensureconnection at the start (the start of the first turning gait) and theend (the end of the second turning gait) of a normal gait (to ensurethat the posture angle of the reference body posture and the angularvelocity thereof at the start of a normal gait agrees with those at theend of the normal gait). In the first reference example, however, forthe purpose of easy understanding, a posture related to an inclinationangle (an inclination angle relative to the vertical direction) in thereference body posture is set to an upright posture (vertical posture).This means that, in the first reference example, the reference bodyposture related to an inclination angle of the body 3 is set to theupright posture in all periods of the normal gait. Accordingly, in thefirst reference example, the angular velocity and angular accelerationof an inclination angle of the reference body posture is zero. A yawangle trajectory (hereinafter referred to also as a reference yaw angletrajectory) θbz of the reference body posture may be, for example, amotion at a constant angular velocity (an average turning velocity of anormal gait), or may take a sinusoidal wave shape, as in the example(FIG. 18) of a reference antiphase arm swing trajectory, which will bediscussed hereinafter. However, the yaw angle trajectory is to be setsuch that a reference yaw angle and its angular velocity are insuccession when the normal gait is repeated.

In the first reference example, the yaw angle trajectory (hereinafterreferred to also as a desired yaw angle trajectory) of a desired bodyposture is set to agree with a reference yaw angle trajectory.

Subsequently, the processing proceeds to S104 to determine reference armposture trajectory parameters. To be more specific, parameters relatedto a total center-of-gravity position of both arms 5, 5 (a relativecenter-of-gravity position with respect to the body 3), a lateralinterval between right and left hands (the distal ends of both arms 5,5), and an antiphase arm swing angle are determined. For turning, forexample, to the left as shown in FIG. 17, the reference antiphase armswing angle may be set as shown in FIG. 18. As illustrated in FIG. 18, areference antiphase arm swing angle θazref is set such that, when anormal gait is repeated, an antiphase arm swing angle and an angularvelocity will be both continuous at a boundary of gaits (the boundarybetween the end of a second turning gait and the next first turninggait) and the relative relationship between the supporting leg at thestart of the first turning gait and an antiphase arm swing angle agreeswith the relative relationship between the supporting leg at the startof the next first turning gait and an antiphase arm swing angle. Inother words, the antiphase arm swing angular velocity at the start ofthe first turning gait and the antiphase arm swing angular velocity atthe end of the second turning gait agree with each other, and theantiphase arm swing angle at the end of the second turning gait is setto a value obtained by adding the antiphase arm swing angle at the startof the first turning gait to the turning angle of the normal gait (thesum of the turning angles of the first turning gait and the secondturning gait). In FIG. 18, the reference antiphase arm swing angleθazref has the sinusoidal waveform; however, it may alternatively be setto a constant angular velocity, or it may take an average value of asupporting leg yaw angle and a free leg yaw angle.

In the first reference example, the total center-of-gravity position ofboth arms 5, 5 of the desired arm posture (the relative position withrespective to the body 3) is set to be maintained constant with respectto the body 3.

Next, the processing proceeds to S106 and sets a floor reaction forcevertical component trajectory parameter. In this case, the floorreaction force vertical component trajectory parameter is set such thatthe floor reaction force vertical component trajectory defined by theparameter is virtually continuous (values do not jump in steps), asshown in FIG. 6, in both the first turning gait and the second turninggait. In other words, a desired floor reaction force vertical componenttrajectory of the normal turning gait is set to have the pattern shownin FIG. 19. According to the pattern, for both the first turning gaitand the second turning gait, the floor reaction force vertical componentexhibits a trapezoidal change in a single stance period, and the floorreaction force vertical component is maintained at zero in a floatingperiod. The time of break points of the pattern and the height of atrapezoid (peak value) are set as the floor reaction force verticalcomponent trajectory parameters.

When setting the floor reaction force vertical component trajectoryparameters, an average value throughout a gait period of the floorreaction force vertical component (the period equivalent to the sum ofthe periods of the first turning gait and the second turning gait, orthe period equivalent to one cycle of a normal gait) is made to agreewith the self weight of the robot 1. This means that the average valueof the floor reaction force vertical component is set so that itprovides the same magnitude as that of the gravity acting on the robot 1but in an opposite direction.

Setting the floor reaction force vertical component trajectory asdescribed above is necessary to satisfy a normal gait condition. Thenormal gait conditions is such that a beginning state (a beginning stateof a first turning gait) of any state variables (a position, a posture,a velocity or the like of each part of the robot 1) of a gait observedfrom a supporting leg coordinate system (a coordinate system set on aplane with which the supporting leg foot 22 is in contact) and aterminal state (a terminal state of a second turning gait) of a gaitobserved from the next supporting leg coordinate system (the supportingleg coordinate system of the next first turning gait) agree with eachother (hereinafter, this condition may be referred to as a boundarycondition of a normal gait). Therefore, the difference between a totalcenter-of-gravity vertical velocity of the robot 1 at the end of thenormal gait and a total center-of-gravity vertical velocity at the startof the normal gait (more specifically, the difference between the totalcenter-of-gravity vertical velocity at the end of a second turning gaitand the total center-of-gravity vertical velocity at the start of thefirst turning gait) must be also zero. The difference is an integratedvalue of the difference between the floor reaction force verticalcomponent and gravity (first order integrated value); therefore, thefloor reaction force vertical component trajectory must be set asdescribed above in order to set the difference to zero.

In the first reference example, the average value of the floor reactionforce vertical component in the period of each of the first turning gaitand the second turning gait has been made to agree with the self weightof the robot 1. More specifically, based on, for example, the gait cycleof the first turning gait and the second turning gait, the time of thebreak points of the trapezoidal portions of the floor reaction forcevertical component trajectory in each turning gait has been set, andthen the heights of the trapezoidal portions have been determined suchthat the average value of the floor reaction force vertical component inthe period of each of the first turning gait and the second turning gaitagrees with the self weight of the robot 1 (the heights of thetrapezoids are determined by solving an equation representing thecondition under which the average value and the self weight coincide,taking the heights of the trapezoids as unknown numbers).

Thus, the difference between the total center-of-gravity verticalvelocity at the end of the first turning gait and the totalcenter-of-gravity vertical velocity at the start of the first turninggait will be zero, and the difference between the totalcenter-of-gravity vertical velocity at the end of the second turninggait and the total center-of-gravity vertical velocity at the start ofthe second turning gait will be also zero. This, however, is not a must.If, for instance, a vertical body position becomes excessively high orlow at about a boundary of the first turning gait and the second turninggait, leading to a likelihood of an unreasonable posture, then theheights or the like of trapezoids of the floor reaction force verticalcomponent trajectory of each turning gait may be corrected in the statein which the average value and the self weight agree in each turninggait.

Next, the processing proceeds to S108 to set a permissible range of afloor reaction force horizontal component [Fxmin, Fxmax] (morespecifically, a parameter defining it), as shown in FIG. 20, on thebasis of the floor reaction force vertical component trajectory set asshown in FIG. 19, as described above. The polygonal line on the negativeside in FIG. 20 indicates the permissible lower limit value Fxmin of thefloor reaction force horizontal component, while the polygonal line onthe positive side indicates the permissible upper limit value Fxmax ofthe floor reaction force horizontal component. A supplementaldescription will be given of a method for setting them. The followingwill explain a case where a floor surface is horizontal.

The floor reaction force horizontal component is generated from frictionbetween a floor and a foot 22. The friction cannot be generatedlimitlessly; it has a limit. Hence, the floor reaction force horizontalcomponent of a desired gait has to be always within a friction limit inorder to prevent the robot 1 from slipping when the actual robot 1 movesaccording to a generated desired gait. To meet this condition, apermissible range of the floor reaction force horizontal component willbe set, and a desired gait will be generated such that the floorreaction force horizontal component of the desired gait falls within thepermissible range, as it will be discussed hereinafter.

When the coefficient of friction between the floor and the foot 22 isdenoted by μ, Fxmin must be always set to be not less than −μ*floorreaction force vertical component, and Fxmax must be set to be not morethan μ*floor reaction force vertical component. A simplest settingmethod is to set according to the following expression, in which ka is apositive constant that is smaller than 1.Fxmin=−ka*μ*Floor reaction force vertical componentFxmax=ka*μ*Floor reaction force vertical component  Equation 12

The permissible range of the floor reaction force horizontal componentshown in FIG. 20 is an example set according to Equation 12. The valuesand time at the break points of the trapezoidal waveforms or the like inFIG. 20 may be set as the parameters for defining the permissible rangeof the floor reaction force horizontal component. Alternatively,however, if the permissible range of the floor reaction force horizontalcomponent is determined according to Equation 12, then the value of(ka*μ) in Equation 12 may be simply set as a parameter.

As long as the above condition (the condition in that the floor reactionforce horizontal component of a desired gait always falls within africtional limit) is satisfied, a different setting method may be usedto set the permissible range of the floor reaction force horizontalcomponent.

The gait generating device 100 then proceeds to S109 and sets thepermissible range of a floor reaction force moment vertical component[Mzmin, Mzmax] (more specifically, a parameter defining it), as shown inFIG. 21, on the basis of the floor reaction force vertical componenttrajectory or the like set as shown in FIG. 19, as described above. Thepolygonal line on the negative side in FIG. 21 indicates the permissiblelower limit value Mzmin of the floor reaction force moment verticalcomponent, while the polygonal line on the positive side indicates thepermissible upper limit value Mzmax of the floor reaction force momentvertical component. A supplemental description will be given of a methodfor setting them. The following will explain a case where a floorsurface is horizontal.

The floor reaction force moment vertical component is generated fromfriction between a floor and a foot 22. The friction cannot be generatedlimitlessly; it has a limit. Hence, the floor reaction force momentvertical component of a desired gait has to be always within a frictionlimit in order to prevent the robot 1 from slipping when the actualrobot 1 moves according to a generated desired gait. To meet thiscondition, a permissible range of the floor reaction force momentvertical component will be set, and a desired gait will be generatedsuch that the floor reaction force moment vertical component of thedesired gait falls within the permissible range, as it will be discussedhereinafter.

If the coefficient of friction between the floor and the foot 22 isdenoted by μ, and an effective radius of the surface of contact betweenthe floor and the foot 22 to generate a moment vertical component (or asquare root of a sectional secondary moment about a desired ZMP of thesurface of contact between the floor and the foot 22) is denote by r,then Mzmin must be always set to be not less than μ*r*floor reactionforce vertical component, and Mzmax must be set to be not more thanμ*r*floor reaction force vertical component. A simplest setting methodis to set according to the following expression, in which ka is apositive constant that is smaller than 1.Mzmin=−ka*μ*r*Floor reaction force vertical componentMzmax=ka*μ*r*Floor reaction force vertical component  Equation 1012

The permissible range of the floor reaction force moment verticalcomponent shown in FIG. 21 is an example set according to Equation 1012.The values and time at the break points of the trapezoidal waveforms orthe like in FIG. 21 may be set as the parameters for defining thepermissible range of the floor reaction force moment vertical component.Alternatively, however, if the permissible range of the floor reactionforce moment vertical component is determined according to Equation1012, then the value of (ka*μ) in Equation 1012 may be simply set as aparameter. r is desirably calculated from a desired ZMP and a contactsurface at each instant; alternately, however, r may be a constant.

As long as the above condition (the condition in that the floor reactionforce moment vertical component of a desired gait always falls within africtional limit) is satisfied, a different setting method may be usedto set the permissible range of the floor reaction force moment verticalcomponent.

Further alternatively, a permissible range may be set by combining afloor reaction force horizontal component and a floor reaction forcevertical component moment rather than independently setting thepermissible range of a floor reaction force horizontal component and thepermissible range of a floor reaction force moment vertical component.This is because the permissible range of a floor reaction force momentvertical component becomes narrower as a floor reaction force horizontalcomponent increases, while the permissible range of the floor reactionforce horizontal component becomes narrower as the floor reaction forcemoment vertical component increases.

Next, the processing proceeds to S110 and sets ZMP trajectory parametersdefining the ZMP trajectory of the normal gait that combines the firstturning gait and the second turning gait. In this case, a desired ZMPtrajectory is set so as to exhibit a high stability margin and no suddenchanges, as described above.

To be more specific, according to the running gait shown in FIG. 5, afew moments after the heel of the supporting leg foot 22 lands,substantially the entire surface of the sole of the supporting leg foot22 comes in contact with the ground, and then, following a few moments,only the tiptoe of the supporting leg foot 22 comes in contact with theground. Thereafter, the robot 1 kicks the ground with the tiptoe of thesupporting leg foot 22 to jump into the air. Lastly, the robot 1 landsat the heel of the free leg foot 22. The desired ZMP has to be in aground contact surface. In the first reference example, therefore, theposition of the desired ZMP in the X-axis direction for the firstturning gait and the second turning gait of the normal gait is set sothat it takes the heel of the supporting leg foot 22 as its initialposition and stays at this position until substantially the entire soleof the foot 22 comes in contact with the ground, as illustrated in theupper diagram of FIG. 7 described above. Subsequently, the desired ZMPis set to move to the center of the supporting leg foot 22, and thenmove to the tiptoe by the time the tiptoe of the foot 22 comes incontact with the ground and remain at the tiptoe of the supporting legfoot 22 until the foot 22 leaves the floor. Thereafter, the desired ZMPis set such that the desired ZMP continuously moves from the tiptoe ofthe supporting leg foot 22 to the landing position of the heel of thefree leg foot 22 by the time the next free leg foot 22 lands, aspreviously described. Thus, the desired ZMP trajectory (the trajectoryin the X-axis direction) of the normal gait composed of the firstturning gait and the second turning gait will be as illustrated in FIG.22. The time and positions of the break points of the desired ZMPtrajectory are set as the ZMP trajectory parameters. In this case, thetime of the break points is set on the basis of gait cycles of the firstturning gait and the second turning gait determined based on therequired parameters. The positions of the break points are set on thebasis of the positions/postures on the next time gait's supporting legcoordinate system and the next but one time gait's supporting legcoordinate system or on the basis of the required values of the expectedfree leg foot landing positions/postures of the first step and thesecond step of the required parameters that define these coordinatesystems. The position of the ZMP trajectory in the Y-axis direction isset in the same manner as that illustrated in the lower diagram of FIG.7. More specifically, the trajectory of the positions of the desired ZMPin the Y-axis direction in the first turning gait is set according tothe same pattern as that shown in the lower diagram of FIG. 7. Thetrajectory of the positions of the desired ZMP in the Y-axis directionin the second turning gait is set to have the same shape as that for thefirst turning gait and continues from the end of the trajectory.

Subsequently, the processing proceeds to S112 and redefines the starttime, the end time, and duration of one step (one cycle) of the normalgait as follows.

A normal gait must be a gait in which state variables continuouslyconnect at the start and the end thereof. To easily determine such agait, in the first reference example, the start, the end, and theduration of one step of a normal gait are determined as illustrated inFIG. 19 for convenience sake, which is different from the definition ofa gait in the narrow sense described above. Specifically, in the latterhalf of a single stance period of the first turning gait, the time atwhich the floor reaction force vertical component has reduced to acertain degree is set as start time Ts of the normal gait. The starttime Ts is preferably set to the time of the moment at which the statewherein substantially the entire surface of the sole of the supportingleg foot 22 is in contact with the ground is switched to tiptoe contactwith the ground or at the time immediately preceding it, as shown inFIG. 7 (the time when the period of the entire sole surface in contactwith the ground ends or the time immediately preceding it, as shown inFIG. 7). A description will now be given of the relationship between thedesired ZMP and time Ts shown in FIG. 22 (or FIG. 7) set in S110. Aftersubstantially the entire surface of the sole of the supporting leg foot22 comes in contact with the ground in the first turning gait, thedesired ZMP moves to the center of the supporting leg foot 22. Theinstant the movement to the tiptoe is completed by the tiptoe contactwith the ground is established is preferably time Ts. The start time Tsis set on the basis of, for example, the desired ZMP trajectoryparameters previously set. The reason for setting the start time Ts asdescribed above will be discussed hereinafter.

As shown in FIG. 19, a cycle Tcyc of the normal gait is a sum of thegait cycles of the first turning gait and the second turning gait. Theend time of the normal gait is denoted by Te. Te is set to the timeobtained by adding Tcyc to Ts.

The definition of the start, the end, or the like of a gait will bereturned to the definition of the gait in the aforesaid narrow senseagain from the moment the normal gait is determined (the moment theprogram leaves the loop of S204 shown in FIG. 23). In the followingexplanation, the start time (the time at which the supporting leg foot22 lands first) according to the definition of a gait based on theaforesaid narrow sense will be set to 0, and the above start time Tsused until the normal gait is determined will be distinguished from theoriginal start time 0 by using the reference mark Ts (abbreviated to“Ts” in some cases).

Lastly, the processing proceeds to S114 and sets a body posture angleand antiphase arm swing angle restoring period [Tm, Ts2] and [Tm2, Te]of the normal gait. Supplementally, when the normal gait is repeated,the body posture angle and the antiphase arm swing angle should becontinuous in a boundary of gaits. For this purpose, the beginning bodyposture angular velocity and the ending body posture angular velocity ofthe normal gait must agree with each other, and the beginning antiphasearm swing angular velocity and the ending antiphase arm swing angularvelocity must agree with each other. The aforesaid period is the periodfor adjusting a body posture angle trajectory and an antiphase arm swingangle trajectory to implement the agreement.

To be more specific, the gait goes through the floating period of thefirst turning gait from the start time Ts and reaches the second turninggait. The time at which the floor reaction force vertical component hasincreased to a predetermined magnitude is set as time Tm. Further, inthe latter half of a single stance period of the second turning gait,the time at which the floor reaction force vertical component hasreduced to a certain degree is set as time Ts2. Further, the gait goesthrough the floating period of the second turning gait and reaches thefirst turning gait. The time at which the floor reaction force verticalcomponent has increased to a predetermined magnitude is set as time Tm2.

FIG. 19 shows these times. The time Tm is preferably set to be themoment substantially the entire surface of the sole of the supportingleg foot 22 comes in contact with the ground or immediately after that.The same applies to time Tm2. The time Ts2 is preferably set to the timeof the moment at which the state wherein substantially the entiresurface of the sole of the supporting leg foot 22 is in contact with theground is switched to tiptoe contact with the ground or at the timeimmediately preceding it, as in the case of the start time Ts.

A description will now be given of the relationship between the desiredZMP of FIG. 22 and these times Tm, Ts2 and Tm2 set in theafore-mentioned S110 of FIG. 15. In the second turning gait, the desiredZMP takes the heel of the supporting leg foot 22 as the beginningposition and remains at this position until substantially the entiresurface of the sole of the supporting leg foot 22 comes in contact withthe ground, and then the desired ZMP begins to move to the center of thesupporting leg foot 22. It is desired to set this moment the desired ZMPbeings to move the center as time Tm. Thereafter, the instant themovement of the desired ZMP to the tiptoe is completed by the time onlythe tiptoe of the supporting leg foot 22 comes in contact with theground is preferably set as time Ts2. Furthermore, in the next firstturning gait, the desired ZMP takes the heel of the supporting leg foot22 as the beginning position and remains at this position untilsubstantially the entire surface of the sole of the supporting leg foot22 comes in contact with the ground, and then the desired ZMP begins tomove to the center of the supporting leg foot 22. It is desired to setthis moment the desired ZMP begins to move to the center as time Tm2.

The reason for setting as described above will be discussed hereinafter.The period for restoring (adjusting) the body posture angle and theperiod for restoring (adjusting) the antiphase arm swing angle may beseparately set.

After the processing from S010 to S022 shown in FIG. 13 is carried out,the processing proceeds to S024 and calculates an initial state of thenormal gait. The initial state calculated here includes an initialhorizontal body position/velocity (an initial body position and initialbody velocity in the horizontal direction), an initial vertical bodyposition/velocity (an initial body position and an initial body velocityin the vertical direction), an initial divergent component, an initialbody posture angle, and an angular velocity, and an initial antiphasearm swing angle and an angular velocity of the normal gait. The initialstate is exploratorily calculated according to the flowchart of FIG. 23.

In the flowchart of FIG. 23, first, in S200, an initial state (a stateat the start time Ts) of a desired foot position/posture, a desired armposture, and a desired body posture angle (an inclination angle and ayaw angle) are determined on the basis of the gait parameters of thenormal gait (the parameters set in S022 of FIG. 13 described above). Thestate here represents positions and posture angles and their changingrates (time derivative).

In this case, the initial state of a desired foot position/posture of asupporting leg is determined by generating, using a finite-durationsetting filter, a foot position/posture trajectory (a trajectoryobserved from a next time gait's supporting leg coordinate system) fromthe supporting leg foot position/posture at the start of the firstturning gait of the foot trajectory parameter determined in S100 of FIG.15 to the free leg foot position/posture at the end of the secondturning gait until time Ts is reached. The initial state of a desiredfoot position/posture of the free leg is determined by generating, usinga finite-duration setting filter, a foot position/posture trajectoryfrom the supporting leg foot position/posture at the start of thecurrent time gait observed from a next time gait's supporting legcoordinate system to the free leg foot position/posture at the end ofthe first turning gait until time Ts is reached. The initial state of adesired arm posture is determined to be a reference arm posture at timeTs that is determined on the basis of the reference arm posturetrajectory parameters determined in S104 of FIG. 15. To be morespecific, a total center-of-gravity position of both arms 5, 5 (arelative position with respect to the body 3) of a desired arm posture,a lateral interval between right and left hands (the distal ends of botharms 5, 5), and an antiphase arm swing angle and an angular velocity aredetermined. However, the antiphase arm swing angle and the angularvelocity are corrected so that they are continuous in a boundary ofgaits when a normal gait is repeated, as it will be discussedhereinafter; therefore, they have been just temporarily determined.

For an initial state of a desired body posture angle, a reference bodyposture (an inclination angle and a yaw angle) and an angular velocitythereof at time Ts determined by the reference body posture trajectoryparameter determined in S102 of FIG. 15 are determined as an initialstate of the desired body posture angle. In the first reference example,the reference body posture related to the inclination angle of the body3 is a vertical posture, so that the initial state (the inclinationangle and the angular velocity thereof) of the inclination angle in thedesired body posture is zero.

Further, in the first reference example, a desired foot position/posturetrajectory, a floor reaction force vertical component trajectory, and adesired ZMP trajectory of a normal gait are determined independentlyfrom each other on the basis of a foot trajectory parameter, a floorreaction force vertical component trajectory parameter, and a ZMPtrajectory parameter, respectively, which have been determined in theflowchart of FIG. 15. For example, a desired foot position/posture ateach instant of a normal gait is determined on the basis of a foottrajectory parameter without depending on an instantaneous value of afloor reaction force vertical component.

Subsequently, in S202, (Xs, Vxs)(Xs: horizontal position; Vxs:horizontal velocity), which is a candidate of an initial horizontal bodyposition velocity (that is, a candidate of the horizontal body positionvelocity at the start time Ts), is provisionally determined. Thecandidate (Xs, Vxs) to be provisionally determined may be arbitrary. Forexample, the horizontal body position velocity in the initial state ofthe normal gait determined when the last time's gait was generated maybe used as a provisionally determined candidate (Xs, Vxs).

To simplify the explanation, a case where the initial state of a normalgait in the X-direction (longitudinal direction) on a sagittal plane issearched for will be taken as an example. However, for the initial stateof a normal gait (the initial state that meets the aforesaid boundarycondition of a normal gait), it is actually required to search for theposition and the velocity in the X direction (longitudinal direction)and the Y direction (lateral direction) separately or simultaneously.

Supplementally, there is no concept related to a yaw rotation or amoment vertical component or others about a vertical axis on thesagittal plane. For this reason, at least the yaw rotation and a momentvertical component are calculated in a three-dimensional space.

As an exploratory determining technique, a method in which apseudo-Jacobian (sensitivity matrix) is determined and then a nextcandidate is determined by the steepest descent method or the like, orthe simplex method or the like may be used. In the present embodiment,the steepest descent method will be used.

Next, the processing proceeds to S206 via S204 and determines theinitial (time Ts) vertical body position velocity (Zs, Vzs)(Zs: verticalposition; Vzs: vertical velocity) so that the vertical body positionvelocity is continuous and angles of joints, such as knees, will not beexcessively large or small when the normal gait is repeated. Moredetails regarding this have been described in, for example,PCT/JP02/13592 previously applied by the present applicant, and will betherefore omitted here.

After the processing of S206, the processing proceeds to S208 toprovisionally generate a normal turning gait (the normal turning gaitprovisionally generated may be hereinafter referred to as theprovisional gait). To be more specific, based on the gait parameters ofthe normal gait determined in S022 of FIG. 13 described above, a desiredZMP, a desired floor reaction force vertical component, a desired footposition/posture, a reference body posture, a desired arm posture, afloor reaction force horizontal component permissible range, and a floorreaction force moment vertical component permissible range at eachinstant from the start time Ts to the end time Te are sequentiallydetermined. Then, gaits from time Ts to the end time Te are generated bysequentially determining the body position/posture, taking thehorizontal body position velocity (Xs, Vxs) and the vertical bodyposition velocity (Zs, Vzs) mentioned above as the initial (time Ts)state of the body 3, and by using the aforesaid dynamic model (the modelin FIG. 12) so as to satisfy the dynamic balance condition related tothe determined desired ZMP and the desired floor reaction force verticalcomponent and the condition of the floor reaction force horizontalcomponent permissible range. At this time, the gaits are generated sothat the body posture agrees with the reference body posture as much aspossible.

Moreover, an antiphase arm swing motion is determined such that thecondition related to the floor reaction force moment vertical component,i.e., the floor reaction force moment vertical component permissiblerange, is satisfied.

Incidentally, the gait generation of the normal gait is performed merelyinside the gait generating device 100, and the generated gaits are notoutput to a composite-compliance operation determiner 104, which will bediscussed later, as desired values for driving the actual robot 1.

The following will explain in detail the processing for generating anormal gait by sequential calculation, which is the processing in S208.

FIG. 24 is a subroutine flowchart illustrating the processing.

The explanation will now be given. In S300, various elements areinitialized. Specifically, the start time Ts is substituted into time kfor generating a provisional gait. Furthermore, a currently determined(Xs, Vxs) (determined in S202, or S216 or S218 of FIG. 23 to bediscussed hereinafter) is substituted into the horizontal body positionvelocity, and the latest (Zs, Vzs) determined in the aforesaid S206 issubstituted into the vertical body position velocity. In addition, aninitial value of a reference body posture angle (angle at the start timeTs) is substituted into the body posture angle, and an initial value ofa reference body posture angular velocity (an angular velocity at thestart time Ts) is substituted into the body posture angular velocity.

A reference initial antiphase arm swing angle (angle at the start timeTs) is substituted into the antiphase arm swing angle, and a referenceinitial antiphase arm swing angular velocity (angular velocity at thestart time Ts) is substituted into the antiphase arm swing angularvelocity.

Subsequently, the processing proceeds to S304 via S302 and determineswhether time k for generating a provisional gait is before gait end time(whether k≦Ts+Tcyc). If the determination result is YES, then theprocessing proceeds to a gait instantaneous value determining subroutineof S306 to determine a gait instantaneous value. Subsequently, theprocessing of the gait generating device 100 proceeds to S308 toincrement time k for generating a provisional gait by Δk, and thenreturns to S304.

Here, Δk is an interval of the generation of provisional gaits andnormally set to agree with a control cycle Δt. If the dynamic accuracyof provisional gaits is not demanding, then Δk may be set to be longerthan Δt in order to reduce the volume of calculation.

If the determination result of S304 is NO, then the processing proceedsto S310. The processing described above generates a normal gait(provisional gait) from its start to end before proceeding to S310.

A gait instantaneous value determining subroutine of S306 will now beexplained in detail with reference to FIG. 25.

First, in S400 of FIG. 25, based on a normal gait parameter (the floorreaction force vertical component trajectory parameter), a value(current time value) of the desired floor reaction force verticalcomponent shown in FIG. 19 at time k is determined. Further, in S402, avalue (current time value) of the desired ZMP trajectory shown in FIG.22 at time k is determined on the basis of a normal gait parameter (theZMP trajectory parameter).

Then, the processing proceeds to S404 and determines the values (currenttime values) of desired positions/postures of both feet (desired footpositions/postures of both supporting leg and free leg), the referencebody posture, and the reference arm posture at time k on the basis ofthe normal gait parameters (the foot trajectory parameter, the referencebody posture trajectory parameter, and the arm posture trajectoryparameter). To be more specific about the reference arm posture, thevalues (current time values) of the total center-of-gravity position ofboth arms 5, 5 (the relative position with respect to the body 3), thelateral interval between right and left hands (the distal ends of botharms 5, 5), and the antiphase arm swing angle are determined.

The current time value (the value at time k) of the desired footposition/posture is determined in the same manner as in the case wherethe foot position/posture at the start time Ts was determined in S200 ofFIG. 23.

Then, the processing proceeds to S406 and calculates a value (currenttime value) of the total center-of-gravity vertical position velocity attime k that satisfies the desired floor reaction force verticalcomponent (balances the sum of the inertial force in the verticaldirection and gravity of the robot 1 with the desired floor reactionforce vertical component). To be more specific, the totalcenter-of-gravity vertical position velocity is calculated on the basisof, for example, the above Equation 01 and Equation 04 related to thedynamic model shown in FIG. 12. In other words, Equation 01 and Equation04 provides a relational expression (a dynamic equation related to thevertical direction of the total center of gravity of the robot 1)indicating that the result obtained by multiplying the sum of the totalcenter-of-gravity vertical acceleration and the gravity accelerationfrom a motion of the robot 1 by the total mass of the robot 1 is equalto a floor reaction force vertical component. Thus, the totalcenter-of-gravity vertical acceleration is determined from therelational expression and the desired floor reaction force verticalcomponent.

The relational expression itself generally holds without depending on amodel of the robot 1. The total center-of-gravity vertical velocity iscalculated by integrating the determined total center-of-gravityvertical acceleration, and further, the total center-of-gravity verticalvelocity is integrated to calculate the total center-of-gravity verticalposition. More generally, these calculations are carried out using thedynamic relational expressions represented by the following Equation 15and Equation 16 (discretized equations of Newton's dynamic equations).Total center-of-gravity vertical velocity at time k=Totalcenter-of-gravity vertical velocity at time (k−Δk)+((Floor reactionforce vertical component/Total mass of the robot)+acceleration ofgravity)*Δk (where the acceleration of gravity takes a negativevalue)  Equation 15Total center-of-gravity vertical position at time k=Totalcenter-of-gravity vertical position at time (k−Δk)+Totalcenter-of-gravity vertical velocity at time k*Δk  Equation 16

Subsequently, the processing proceeds to S408 and calculates thevertical body position that satisfies the total center-of-gravityvertical position. To be more specific, the vertical body position iscalculated using, for example, Equation 04 related to the model in FIG.12. Specifically, the vertical positions of the supporting leg masspoint 2 m and the free leg mass point 2 m of the model in FIG. 12 aredetermined from the current time values of the desired footpositions/postures of the supporting leg and the free leg. Then, thesedetermined vertical positions of the supporting leg mass point 2 m andthe free leg mass point 2 m and the current time value of the totalcenter-of-gravity vertical position determined in S407 are applied toEquation 04 so as to determine the vertical position of the body masspoint 3 m. Furthermore, the vertical body position is determined fromthe determined vertical position of the body mass point 3 m and thecurrent time value of the desired body posture angle (the reference bodyposture angle set in S404 or the last time's (time k−Δk) desired bodyposture angle determined in S414 to be discussed hereinafter).

The processing then proceeds to S410 wherein the values (current timevalue), at time k, of the floor reaction force horizontal componentpermissible range [Fxmin, Fxmax] shown in FIG. 20 are determined on thebasis of the gait parameter (the parameter defining the floor reactionforce horizontal component permissible range) determined in S108 of FIG.15 described above.

Subsequently, the processing proceeds to S411 wherein the values(current time value), at time k, of the floor reaction force momentvertical component permissible range [Mzmin, Mzmax] shown in FIG. 21 aredetermined on the basis of the gait parameter (the parameter definingthe floor reaction force moment vertical component permissible range)determined in S109 of FIG. 15 described above.

Then, the processing proceeds to S412 wherein the current time values ofthe desired body horizontal acceleration and the desired body postureacceleration are determined such that the dynamic balance conditionrelated to the desired ZMP (the condition in that the horizontalcomponent of a moment generated about the desired ZMP by a resultantforce of an inertial force and the gravity of the robot 1 is zero) issatisfied. The body horizontal acceleration and the body posture angularacceleration (more specifically, the body inclination angularacceleration) are determined such that the floor reaction forcehorizontal component Fx does not exceed [Fxmin, Fxmax]. Further, thecurrent time value of the desired antiphase arm swing angularacceleration is determined such that the floor reaction force momentvertical component Mz does not exceed [Mzmin, Mzmax].

Of the body posture angle, the yaw angle is determined so as to agreewith the yaw angle of the reference body posture angle. Regarding thedesired arm posture, components other than the antiphase arm swing angleare determined to agree with the reference arm posture. At this time,the desired body inclination angle and the desired antiphase arm swingangle are determined to follow the reference body inclination angle andthe reference antiphase arm swing angle, respectively, as much aspossible, while satisfying the aforesaid condition. This will beexplained in detail below.

At this point, the instantaneous values (current time values) of thefoot position/posture and the vertical body position have beendetermined as described above. Regarding the arm posture, the componentsother than the antiphase arm swing angle have been determined to agreewith those of the reference arm posture. Therefore, once the remaininghorizontal body position, body posture angle and antiphase arm swingangle are determined, then the desired motion of the robot 1 will beuniquely determined. Hence, all floor reaction forces will be alsouniquely determined. In the first reference example, the desired floorreaction force vertical component and the desired ZMP of a normal gaitare defined by the floor reaction force vertical component trajectoryparameter and the desired ZMP trajectory parameter, respectively,determined in S022 of FIG. 13 described above.

When generating a gait, if the body inclination mode is primarily usedto satisfy a desired ZMP (to set the horizontal component of a floorreaction force moment about a desired ZMP to zero) without using theaforesaid body translational mode, then the body posture angle maybecome excessively large. To prevent this, therefore, the bodytranslational mode should be used as much as possible. However, the bodytranslational mode involves floor reaction force horizontal componentchanges, so that slippage may occur if the body translational mode isintensely effected when the floor reaction force horizontal componentpermissible range is narrow. In this case, depending upon the bodyinclination mode is an inevitable choice. Especially during a period inwhich the floor reaction force horizontal component permissible range iszero, as in the aforesaid running gait, it is impossible to generate agait for generating a floor reaction force horizontal component. Hence,depending upon the body inclination mode is an inevitable choice.

Meanwhile, an antiphase arm swing motion allows only the floor reactionforce moment vertical component to be changed without changing any ofthe horizontal component of a floor reaction force moment about adesired ZMP and the floor reaction force horizontal component, so thatit can be used to prevent the floor reaction force moment verticalcomponent from exceeding the aforesaid floor reaction force momentvertical component permissible range. Considering the above, in thefirst reference example, the body horizontal acceleration, the bodyposture angular acceleration, and the antiphase arm swing accelerationare determined according to the flowchart shown in FIG. 26. For theconvenience of understanding, regarding the determination of the bodyhorizontal acceleration and the body posture angular acceleration (theangular acceleration of an inclination angle of the body 3), a casewhere the body horizontal acceleration and the body posture angularacceleration in the X direction (longitudinal direction) are determinedon a sagittal plane will be taken as an example. Actually, however, thebody horizontal acceleration and the body posture angular accelerationin the Y direction (lateral direction) are also determined in the samemanner as that for the X direction.

First, in S500, the value of the reference body yaw angle at time k issubstituted into the desired body yaw angle. Further, the value of areference arm posture at time k is substituted into the desired armposture, excluding the antiphase arm swing angle and the angularvelocity component of an arm posture.

Then, in S502, it is determined whether the current time (the value of atimer for generating a normal gait) k is in the period of restoring abody posture angle and an antiphase arm swing angle (the period ofrestoring a body posture angle and an antiphase arm swing angle beingthe period from time Tm to time Ts2 and the period from time Tm2 to Tein the case of a normal gait). The processing proceeds to S504 if thedetermination result of S502 is NO, or to S530 if the determinationresult is YES.

In S504, a body horizontal acceleration αtmp necessary to satisfy thecurrent (time k) desired ZMP is determined, assuming that the robot 1 ismade to perform a motion of the body translational mode, the angularacceleration of the body inclination mode being set to zero, from a lasttime's instantaneous gait state (the gait state at time k−1) of therobot 1. The αtmp is determined using, for example, the above Equation03y related to the dynamic model of FIG. 12 described above. To be morespecific, for example, time series values of desired footpositions/postures determined by the current time k are used todetermine the vertical accelerations of the supporting leg mass point 2m and the free leg mass point 2 m at the current time k, and a desiredfoot position/posture at the current time k (current time) is used todetermine the vertical positions of the supporting leg mass point 2 mand the free leg mass point 2 m. Furthermore, the floor reaction forcevertical position at the current time k (current time) is used todetermine the vertical position of the body mass point 3 m, and thevertical acceleration of the body mass point 3 m at the current time kis determined by using time series values of the desired vertical bodypositions determined by the current time k. Then, these determinedvalues are substituted into the above Equation 03y, and an equationobtained by setting My and d2θby/dt2 of the Equation 03y to zero issolved on d2Xb/dt2 so as to determine the body mass point horizontalacceleration as the body horizontal acceleration αtmp. A more precisedynamic model may be used to exploratorily determine the body horizontalacceleration αtmp that sets the horizontal component of the floorreaction force moment about the desired ZMP to zero. Further, in thefirst reference example, the reference body posture related to theinclination angle of the body 3 is the vertical posture and the bodyposture angular acceleration (the angular acceleration of theinclination angle of the body 3) in the reference body posture is zero,so that the angular acceleration in the body inclination mode was set tozero to determine the body horizontal acceleration αtmp. If, however,the reference body posture trajectory parameter is set so that theinclination angle of the reference body posture changes and if thereference body posture angular acceleration (the reference angularacceleration of the inclination angle of the body 3) at the current timek determined thereby is not zero, then the angular acceleration in thebody inclination mode may be set to the value of that reference bodyposture angular acceleration, which is not zero, to determine the bodyhorizontal acceleration αtmp by using a dynamic model (for example,d2θby/dt2 of Equation 03y may be set to a reference body posture angularacceleration that is not zero to determine the body horizontalacceleration αtmp in the same manner as described above).

Next, the processing proceeds to S506 wherein a floor reaction forcehorizontal component Fxtmp at time k when the body horizontalacceleration is αtmp is determined using a dynamic model. In the firstreference example, Fxtmp is determined using Equation 02x of the dynamicmodel. In other words, Fxtmp is determined according to the followingEquation 17, where d2Xsup/dt2 and d2Xswg/dt2 denote the supporting legfoot mass point horizontal acceleration and the free leg foot mass pointhorizontal acceleration.Fxtmp=mb*αtmp+msup*d2Xsup/dt2+mswg*d2Xswg/dt2  Equation 17

An example of Fxtmp determined as described above is shown in FIG. 27.In FIG. 27, a portion wherein Fxtmp exceeds the floor reaction forcehorizontal component permissible range [Fxmin, Fxmax] is hatched.

Subsequently, the processing proceeds to S508 wherein a body horizontalacceleration α in the body translational mode and a floor reaction forcehorizontal component Fx generated thereby, and a body angularacceleration β in the body inclination mode are determined as shownbelow (S508 to S516).

Specifically,

If Fxtmp>Fxmax, then the processing proceeds to S510 wherein Fx isdetermined according to the following equation.Fx=Fxmax  Equation 18

If Fxtmp<Fxmin, then the processing proceeds to S512 wherein Fx isdetermined according to the following equation.Fx=Fxmin  Equation 19

In other cases, that is, if Fxtmp lies within the floor reaction forcehorizontal component permissible range [Fxmin, Fxmax], then theprocessing proceeds to S514 wherein Fx is determined according to thefollowing equation.Fx=Fxtmp  Equation 20

In any case, the processing proceeds to S516 wherein the body horizontalacceleration α and the body posture angular acceleration (bodyinclination angular acceleration) β are determined according to thefollowing equations.α=αtmp+(Fx−Fxtmp)/ΔFp  Equation 21β=(αtmp−α)*ΔMp/ΔMr  Equation 22

where ΔFp, ΔMp, and ΔMr are determined according to the above Equations06, 07, and Equation 09, respectively.

Supplementally, if higher accuracy of the dynamic calculation isrequired, then, after determining the body angular acceleration β asdescribed above, the body horizontal acceleration α in the bodytranslational mode should be analytically or exploratorily determined byusing a more precise dynamic model so that a motion obtained bycombining the body translational mode and the body inclination mode ofthe above determined body angular acceleration β satisfies the desiredZMP. As an exploratory determining method, a method in which apseudo-Jacobian (sensitivity matrix) is determined and then a nextcandidate is determined by the pseudo-Newton method or the like, or thesimplex method or the like may be used.

Further, in order to strictly prevent the floor reaction forcehorizontal component Fx from exceeding the floor reaction forcehorizontal component permissible range [Fxmin, Fxmax], a set of the bodyhorizontal acceleration α and the body angular acceleration β may beexploratorily searched for such that Fx=Fxmax and the horizontalcomponent of the floor reaction force moment about the desired ZMP iszero in S510 and also Fx=Fxmin and the horizontal component of the floorreaction force moment about the desired ZMP is zero in S512.

FIG. 28 shows Fx determined as described above. Fx has been limited(saturated) so that a value of Fxtmp does not exceed the floor reactionforce horizontal component permissible range [Fxmin, Fxmax]. Morespecifically, Fxtmp is directly used as Fx if Fxtmp based on the bodyhorizontal acceleration αtmp only by the body translational mode lieswithin the permissible range [Fxmin, Fxmax]. If Fxtmp based on the bodyhorizontal acceleration αtmp only by the body translational mode exceedsan upper limit of the permissible range [Fxmin, Fxmax] or reduces belowa lower limit thereof, then Fx is forcibly limited to Fxmax and Fxmin,respectively. Especially in a floating period of a running gait,Fxmax=Fxmin=0 applies all the times, so that Fx=0.

FIG. 29 shows the body posture angular acceleration β determined asdescribed above. Thus, an insufficient portion of the floor reactionforce moment caused by limiting the acceleration in the bodytranslational mode so as to prevent Fx generated by the bodytranslational mode from exceeding the permissible range [Fxmin, Fxmax](more specifically, the moment obtained by subtracting a momentcomponent produced by a limited body horizontal motion and the motionsof both legs 2, 2 from an inertial force moment required for reducingthe horizontal component of a floor reaction force moment about thedesired ZMP to zero) has been compensated for by the body inclinationmode. During a floating period of a running gate, the body horizontalacceleration α by the body translational mode is always limited to zero,so that the insufficient portion of the floor reaction force moment iscompensated for only by the body posture angular acceleration β by thebody inclination mode.

Subsequently, the processing proceeds to S518 to determine a floorreaction force moment vertical component Mztmp when a motion in which,for example, a body horizontal acceleration in the body translationalmode is α, a body angular acceleration (body inclination angularacceleration) in the body inclination mode is β, a body acceleration inthe body yaw rotation mode (body yaw angular acceleration) is areference yaw angular acceleration d2θbzref/dt2, and an antiphase armswing angular acceleration βa is a reference antiphase arm swing angularacceleration d2θazref/dt2, is performed. Hereinafter, d2θbzref/dt2 willbe βbref, and d2θazref/dt2 will be βaref.

To be more specific, Mz obtained by substituting Equation 1001 throughEquation 1004 into Equation 03z is Mztmp.d2Xb/dt2=αx  Equation 1001d2Yb/dt2=αy  Equation 1002d2θbz/dt2=βbref  Equation 1003d2θaz/dt2=βaref  Equation 1004

where αx denotes an X component of the body horizontal acceleration α;αy denotes a Y component of the body horizontal acceleration α.Furthermore, A horizontal body position at time k−1 is substituted intoXb and Yb, and a value of time k is substituted into Xzmp, Yzmp, Xsup,d2Ysup/dt2, Xswg, and d2Yswg/dt2.

FIG. 32 shows an example Mztmp determined as described above. In FIG.32, the portions of Mztmp that exceeds the floor reaction force momentvertical component permissible range [Mzmin, Mzmax] are shown byhatching.

Next, the processing proceeds to S520 wherein an antiphase arm swingangular acceleration βa is determined as shown below (S520˜S528).

Specifically,

If Mztmp>Mzmax, then the processing proceeds to S522 wherein Mz isdetermined according to the following equation.Mz=Mzmax  Equation 1018

If Mztmp<Mzmin, then the processing proceeds to S524 wherein Mz isdetermined according to the following equation.Mz=Mzmin  Equation 1019

In other cases, that is, if Mztmp lies within the floor reaction forcehorizontal component permissible range [Mzmin, Mzmax], then theprocessing proceeds to S526 wherein Mz is determined according to thefollowing equation.Mz=Mztmp  Equation 1020

In any case, the processing proceeds to S528 wherein the antiphase armswing angular acceleration βa is determined according to the followingequation.βa=βaref+(Mztmp−Mz)/ΔMaz  Equation 1021

where ΔMaz is determined according to Equation 09a.

The following will explain the processing from S518 to S528.

Mz determined as described above denotes a floor reaction force momentvertical component from a motion of the entire robot, including anantiphase arm swing.

In the above processing, the antiphase arm swing angular acceleration βahas been determined such that the Mz does not exceed the floor reactionforce moment vertical component permissible range [Mzmin, Mzmax]. Too bemore specific, Mz has been determined to be limited (saturated) so thata value of Mztmp does not exceed the floor reaction force horizontalcomponent permissible range [Mzmin, Mzmax]. More detailedly, Mztmp isdirectly used as Mz if Mztmp lies within the permissible range [Mzmin,Mzmax]. If Mztmp exceeds an upper limit of the permissible range [Mzmin,Mzmax] or reduces below a lower limit thereof, then Mz is forciblylimited to Mzmax and Mzmin, respectively. Especially in a floatingperiod of a running gait, Mzmax=Mzmin=0 applies all the times, so thatMz=0.

A moment vertical component Maz to be generated by an antiphase armswing in order to prevent Mz from exceeding the floor reaction forcemoment vertical component permissible range [Mzmin, Mzmax] is(Mz−Mztmp). Maz(=Mz−Mztmp) is shown in FIG. 34.

The antiphase arm swing angular acceleration βa can be obtained byadding the result obtained by dividing Maz by an equivalent inertialmoment ΔMaz of an antiphase arm swing to a reference antiphase arm swingangular acceleration βaref (a value obtained by subjecting a referenceantiphase arm swing angle to second order differentiation).Specifically, βa is determined according to the above Equation 1021. Theantiphase arm swing angular acceleration βa is shown in FIG. 35.

As described above, in the processing from S504 to S528, the antiphasearm swing angular acceleration βa is determined such that the floorreaction force moment vertical component Mz generated by a motion of theentire robot, including an antiphase arm swing, does not exceed thepermissible range [Mzmin, Mzmax] (such that the floor reaction forcemoment vertical component Mztmp offsets (cancels) the portion of thefloor reaction force moment vertical component Mztmp that exceeds thepermissible range, the floor reaction force moment vertical componentMztmp being generated when an antiphase arm swing angular accelerationis set to agree with the reference antiphase arm swing angularacceleration βaref.

Supplementally, to strictly prevent the floor reaction force momentvertical component Mz from exceeding the floor reaction force momentvertical component permissible range [Mzmin, Mzmax], the antiphase armswing angular acceleration βa should be analytically or exploratorilysearched for by using a more precise dynamic model in place of theprocessing from S504 to S528. As an exploratory determining method, amethod in which a pseudo-Jacobian (sensitivity matrix) is determined andthen a next candidate is determined by the pseudo-Newton method or thelike, or the simplex method or the like may be used.

The above processing is performed if time k is not found during theperiod of restoring a body posture angle and an antiphase arm swingangle.

If a determination result of S502 is YES, then the following processingwill be carried out. First, the processing proceeds to S530 wherein thebody horizontal acceleration α required to satisfy the desired ZMP ofcurrent time (time k) when the angular acceleration in the bodyinclination mode is set to zero from the last time's instantaneous gaitstate (the gait state at time k−1) of the robot 1 so as to make therobot 1 perform a motion of the body translational mode is determined,and this is determined as a final body horizontal acceleration.

Next, the processing proceeds to S532 wherein the floor reaction forcehorizontal component Fx in the aforesaid case is determined.

Next, the processing proceeds to S534 wherein the body posture angularacceleration (the body inclination angular acceleration) β is determinedto be zero. The body yaw angular acceleration is determined to be thereference body yaw angular acceleration βbref (the value obtained bysubjecting the reference body yaw angle to second orderdifferentiation).

Lastly, the processing proceeds to S536 wherein the reference antiphasearm swing angular acceleration βaref (the value obtained by subjectingthe reference antiphase arm swing angle to second order differentiation)is substituted into the antiphase arm swing angular acceleration βa.

The above is the processing carried out if the determination result ofS502 is YES. More specifically, in this case, the body posture angularacceleration (the body inclination angular acceleration and the body yawangular acceleration) is set to agree with the reference body postureangular acceleration, and the antiphase arm swing angular accelerationis set to agree with a reference antiphase arm swing angularacceleration. It is expected that this setting will not cause a floorreaction force generated by a motion to exceed the floor reaction forcehorizontal component permissible range and the floor reaction forcemoment vertical component permissible range; therefore, determining asdescribed above will present no problem.

After the processing of S528 or S536, the processing proceeds to S414 ofFIG. 25 wherein the body horizontal acceleration determined in S412 issequentially integrated (cumulative addition from time Ts to currenttime k) so as to determine a horizontal body velocity, and further, thehorizontal body velocity is sequentially integrated (cumulative additionfrom time Ts to current time k) so as to determine a horizontal bodyposition (current time value). Further, the body posture angularacceleration determined in S412 is sequentially integrated (cumulativeaddition from time Ts to the current time k) so as to determine a bodyposture angular velocity, and further, the body posture angular velocityis sequentially integrated (cumulative addition from time Ts to thecurrent time k) so as to determine a body posture angle (current timevalue).

The processing then proceeds to S416 wherein the antiphase arm swingacceleration βa is sequentially integrated (cumulative addition fromtime Ts to the current time k) so as to determine an antiphase arm swingvelocity, and further, the determined antiphase arm swing velocity issequentially integrated (cumulative addition from time Ts to the currenttime k) so as to determine an antiphase arm swing angle θaz (currenttime value).

After the normal gait instantaneous value determining subroutine of S306in FIG. 24 is carried out, the processing proceeds to S308 wherein thevalue of time k for generating a gait is incremented by a gaitgeneration interval Δk. Then, the processing returns to S304 to repeatthe processing of S306 and S308 as long as the condition shown in S304is satisfied. When the condition shown in S304 is no longer satisfied,that is, when the generation of provisional gaits up to the end (timeTe=Ts+Tcyc) is completed, the processing proceeds to S310.

For a normal gait, an initial body posture angle and its angularvelocity must be determined such that motional states of the robot 1 arenot discontinuous at boundaries when the normal gait is repeated.

Hence, in S310, a pattern of a ZMP-converted value (hereinafter referredto as the body posture restoring moment ZMP-converted value andabbreviated to ZMPrec) of a floor reaction force moment for generating abody posture angular acceleration for setting a body posture angularvelocity back to an initial value (the value at time Ts) by time Te isset.

This will be explained in detail below.

The following will discuss the procedure for setting a body postureangular velocity back to an initial value (the value at time Ts) bygenerating a body posture angular acceleration by using the bodyinclination mode during the period of restoring a body posture angle andan antiphase arm swing angle (the period from time Tm to time Ts2 andfrom time Tm2 to Te). A body posture angular acceleration pattern forthis purpose is denoted by β(k). In periods other than theabove-mentioned period, β(k)=0 will apply.

In the body inclination mode, generating the body posture angularacceleration β(k) will generate a floor reaction force moment β(k)*ΔMr.As a result, if the floor reaction force vertical component at thatinstant is denoted by Fz(k), then ZMP(k) calculated from a motion(rather than a desired ZMP) will be shifted by ΔZMP determined accordingto the following equation.ΔZMP(k)=−β(k)*ΔMr/Fz(k)  Equation 23

Therefore, if the pattern of ΔMr and the pattern of Fz(k) have beendetermined (known), then the body posture angular velocity can be setback to the initial value (the value at time Ts), that is, the bodyposture angular velocity in an initial (time Ts) state of the referencebody posture trajectory by appropriately setting a pattern of ΔZMP(k) togenerate a body posture angular acceleration pattern that satisfiesEquation 23.

The aforesaid body posture restoring moment ZMP-converted value (ZMPrec)means ΔZMP(k) that has been appropriately set as described above.Strictly speaking, ΔMr varies when setting the body posture restoringmoment ZMP-converted value by using the above Equation 23, but it may beapproximately set at a constant value. This is because the normal gaitis merely generated for temporary use and not used to make an actualrobot follow the gait, so that the dynamic accuracy of a normal gaitdoes not have to be very high.

FIG. 30 illustrates an example of ZMPrec. In FIG. 30, as a pattern ofZMPrec, trapezoidal patterns are formed for the period from time Tm totime Ts2 and for the period from time Tm2 to time Te. The times of breakpoints of the trapezoidal portions are set to agree with the times ofbreak points of a desired ZMP pattern in the period between time Tm andtime Ts2 and the period from Tm2 to Te (refer to FIG. 22). This isbecause correction of the desired ZMP pattern of a current time gaitwill be easier, as it will be discussed hereinafter.

Substituting ZMPrec(k) into ΔZMP(k) of Equation 23 provides thefollowing equation.β(k)=−ZMPrec(k)*Fz(k)/ΔMr  Equation 24

Therefore, β(k) determined in this Equation 24 will be as indicated bythe solid lines in FIG. 31. The dashed lines in FIG. 31 indicate thebody posture angular acceleration during the period from time Ts to timeTm and the period from time Tm2 to Te (indicated by the solid lines inFIG. 29). (Hereinafter, (k) may be omitted if a value is obviously thevalue at time k.) The initial (time Ts) body posture angle is set toagree with the initial (time Ts) reference body posture angle.

Further, the initial body posture angular velocity is determined tosatisfy Equations 37a and 37b.Terminal body posture angle−Initial body posture angle=Second orderintegration of a body posture angular acceleration that has beendetermined to satisfy a floor reaction force horizontal componentpermissible range+Second order integration of a body posture angularacceleration generated by ZMPrec+Initial body posture angularvelocity*Cycle of normal gait  Equation 37aTerminal body posture angular velocity−Initial body posture angularvelocity=First order integration of a body posture angular accelerationthat has been determined to satisfy a floor reaction force horizontalcomponent permissible range+First order integration of a body postureangular acceleration generated by ZMPrec  Equation 37b

The integration period of the first term of the right side of each ofEquations 37a and 37b is the period combining the period from time Ts toTm and the period from Ts2 to Tm2, while the integration period of thesecond term of the right side is the period combining the period fromtime Tm to Ts2 and the period from Tm2 to Te.

To explain more specifically, in a normal gait, an initial state postureangle and an angular velocity observed from a supporting leg coordinatesystem of a first turning gait (a next time's gait supporting legcoordinate system) must agree with a terminal body posture angle andangular velocity, respectively, observed from a supporting legcoordinate system of the next first turning gait (the next but two timegait's supporting leg coordinate system). Therefore, in the firstreference example, the initial (time Ts) body posture angle isdetermined to be the value of the initial (time Ts) reference bodyposture angle, and this value and the value obtained by subjecting thisvalue to coordinate conversion into a value observed from the next timegait's supporting leg coordinate system by a matrix (matrix ofrotational coordinate conversion) based on a total turning angle(turning angle about a vertical axis) of the robot 1 in a normal gaitare substituted into the initial body posture angle and the terminalbody posture angle, respectively, in the left side of Equation 37a. Thebody posture angular acceleration determined in S518 of FIG. 26described above is used as the body posture angular acceleration relatedto the integration of the first term of the right side of Equations 37aand 37b.

Then, the initial body posture angular velocities of Equations 37a and37b and the heights of the trapezoids of ZMPrec (the trapezoidalpatterns shown in FIG. 30) related to the integration of the secondterms of the right sides of Equations 37a and 37b are taken as unknownnumbers (However, the times of the break points of the trapezoidalpatterns of ZMPrec are determined beforehand. Further, a trapezoidalheight acyc1 of ZMPrec of a first turning gait and a trapezoidal heightacyc2 of ZMPrec of a second turning gait are set to have the samevalue.) An initial body posture angular velocity determined by solvingthe simultaneous equation of Equations 37a and 37b including the unknownnumbers is decided as a new initial body posture angular velocity. Inthis case, the terminal body posture angular velocity in Equation 37b isobtained by coordinate-converting the initial body posture angularvelocity, which is an unknown number, into a value observed from a nexttime's gait supporting leg coordinate system by a matrix based on theabove total turning angle of a normal gait.

Subsequently, the processing proceeds to S312 wherein an amount ofinfluence exerted by a body inclination restoring moment ZMP-convertedvalue (ZMPrec) pattern on a horizontal body position and a velocity isdetermined on the basis thereof, and the determined amount is added tothe horizontal body position and velocity at an end.

This processing will be explained. The details have been explained inPCT/JP02/13592 by the present applicant, so that only a briefexplanation will be given here.

During the period from time Ts to Tm and the period from time Ts2 to Te,if the body posture angular acceleration β is changed to generate thebody inclination restoring moment ZMP-converted value (ZMPrec) pattern,as described above, then the body posture angular acceleration β isdetermined according to the following equation.β=−ZMPrec*Fz/ΔMr  Equation 1025

The body horizontal acceleration that satisfies the desired ZMP when nobody inclination restoring moment is generated is αtmp as determined inS532. When the body posture angular acceleration β is changed asdescribed above, the body horizontal acceleration α required to satisfythe desired ZMP is determined according to the following equation.α=αtmp−(ΔMr/ΔMp)*β  Equation 1026

From Equations 1025 and 1026,α=αtmp+ZMPrec*Fz/ΔMp  Equation 1027

In other words, the acceleration is increased by an equivalent to thesecond term of the right side of Equation 1027 by the body inclinationrestoring moment ZMP-converted value (ZMPrec).

Using the linearity of the equations, the body horizontal velocity at anend obtained when the body posture angular acceleration β is changed togenerate the body inclination restoring moment ZMP-converted value(ZMPrec) pattern as described above will be determined by adding thefirst order integration of (ZMPrec*Fz/ΔMp) from time Ts to Te to thebody horizontal velocity at an end obtained when the body inclinationrestoring moment ZMP-converted value (ZMPrec) pattern is not generated,i.e., the end value of the body horizontal velocity determined in S414.Further, the horizontal body position at an end obtained when the bodyposture angular acceleration β is changed to generate the bodyinclination restoring moment ZMP-converted value (ZMPrec) pattern asdescribed above will be determined by adding the second orderintegration of (ZMPrec*Fz/ΔMp) from time Ts to Te to the horizontal bodyposition at an end obtained when the body inclination restoring momentZMP-converted value (ZMPrec) pattern is not generated, i.e., the endvalue of the horizontal body position determined in S414.

After completing the processing of S312, the processing proceeds to S314wherein an antiphase arm swing restoring angular acceleration (βarec)pattern is determined such that the antiphase arm swing angularvelocities at a start and an end agree.

To be more specific, the antiphase arm swing restoring angularacceleration patterns are set to be trapezoidal, as shown in FIG. 36,and a trapezoidal height azcyc2 in the period from time Tm to Ts2 and atrapezoidal height azcyc1 in the period from time Tm2 to Te are set tobe the same. The trapezoidal heights azcyc1 and azcyc2 are determinedsuch that the sum of the integrated value of βarec from time Ts to Teand the integrated value of the above determined antiphase arm swingacceleration βa for preventing the floor reaction force moment verticalcomponent Mz from exceeding a permissible range becomes zero. Thetrapezoidal heights in the two periods do not have to be the same.

Supplementally, a floor reaction force moment vertical component(Mazrec) generated by the antiphase arm swing restoring angularacceleration pattern determined as described above is as shown in FIG.37. Accordingly, as shown in FIG. 38, the floor reaction force momentvertical component Mz generated by a motion of the robot, including anantiphase arm swing, will be eventually the sum of Mztmp of FIG. 32, Mazof FIG. 34, and Mazrec of FIG. 37, i.e., the sum of Mz of FIG. 33 andMazrec of FIG. 37. In the period from time Tm to Ts2 and the period fromtime Tm2 to Te, trapezoidal restoring moments are added. These periodsare set so as to provide a sufficiently wide permissible range;therefore, the floor reaction force moment vertical components generatedby motions of the robot, including antiphase arm swings, do not exceedthe permissible range.

The processing then proceeds to S316 wherein an initial (time Ts)antiphase arm swing angle and an angular velocity of a normal gait aredetermined.

To be more specific, the initial antiphase arm swing angular velocity isdetermined according to the following equation.Initial antiphase arm swing angular velocity=Reference initial antiphasearm swing angular velocity−(Antiphase arm swing angle when βarec is0+Second order integration of βarec pattern)/Tcyc  Equation 1030

where in the above equation, the antiphase arm swing angle when βarec iszero is the antiphase arm swing angle (the antiphase arm swing angle attime Te) determined in S416. The second order integration of βarecrefers to a second order integrated value of the antiphase arm swingrestoring angular acceleration from time Ts to Te set as shown in FIG.36. The reference initial antiphase arm swing angular velocity refers tothe value of the aforesaid reference antiphase arm swing angularvelocity (the first order differential value of the reference antiphasearm swing angle βaref) at time Ts.

The initial antiphase arm swing angle is set to agree with the referenceinitial antiphase arm swing angle. Alternatively, based on a finallydetermined antiphase arm swing angular acceleration (that is, the abovedetermined sum of antiphase arm swing acceleration βa and the restoringangular acceleration βarec for preventing the floor reactionforce-moment vertical component Mz from exceeding a permissible range)and the above determined initial antiphase arm swing angular velocity,the average value of the difference between an arm swing anglecalculated when an initial antiphase arm swing angle is set to agreewith a reference initial antiphase arm swing angle and a referenceantiphase arm swing angle, or an average value of the maximum value andthe minimum value of the difference may be determined, and then thevalue obtained by subtracting a half of the determined average valuefrom the reference initial antiphase arm swing angle may be determinedas the final initial antiphase arm swing angle. This arrangement makesit possible to prevent the absolute value of the difference between acalculated arm swing angle and the reference antiphase arm swing anglefrom becoming excessively large.

One of the reasons that times Ts, Tm, Ts2, and Tm2 have been set asdescribed above is to prevent the floor reaction force horizontalcomponent Fx from exceeding the permissible range [Fxmin, Fxmax] even ifthe body posture angular acceleration β is generated to set the bodyposture angular velocity back to the initial angular velocity of areference body posture trajectory during the period from time Tm to Ts2and the period from time Tm2 to Te. In other words, the floor reactionforce horizontal component permissible range is sufficiently wide in theperiod from time Tm to Ts2 and the period from time Tm2 to Te, so thatthe floor reaction force horizontal component Fx does not exceed thepermissible range even if the body posture angular acceleration β isgenerated to restore the body posture angular velocity, while satisfyingthe desired ZMP.

Another reason that the times Ts, Tm, Ts2, and Tm2 have been set asdescribed above is to prevent the floor reaction force moment verticalcomponent Mz from exceeding the permissible range [Mzmin, Mzmax] even ifthe antiphase arm swing angular acceleration βa is generated to set theantiphase arm swing angular velocity back to the initial angularvelocity of a reference antiphase arm swing angle trajectory during theperiod from time Tm to Ts2 and the period from time Tm2 to Te. In otherwords, the floor reaction force moment vertical component permissiblerange is sufficiently wide in the period from time Tm to Ts2 and theperiod from time Tm2 to Te, so that the floor reaction force momentvertical component Mz does not exceed the permissible range even if theantiphase arm swing angular acceleration βa is generated to restore theantiphase arm swing angular velocity.

After the processing of S316 of FIG. 24 is completed as described above,the processing proceeds to S210 of FIG. 23 wherein the horizontal bodyposition and velocity at the end of a generated gait (provisional normalgait) are converted into values observed from a supporting legcoordinate system (the coordinate system of X″′, Y″′, and Z″′ shown inFIG. 17) associated with the supporting leg of that particular instant,and the values are defined as (Xe, Vxe)(Xe: Body horizontal position atthe end; and Vxe: Body horizontal velocity at the end).

Subsequently, the processing proceeds to S212 wherein the differencebetween the initial horizontal body position and velocity (Xs, Vxs) andthe horizontal position and velocity at the end (Xe, Vxe) is calculated,as illustrated. This difference (Xs−Xe, Vxs−Vxe) is referred to as ahorizontal body position and velocity boundary condition error (errx,errvx). In a normal gait, the boundary condition must be satisfied, sothat (Xs, Vxs) and (Xe, Vxe) must agree. Hence, the horizontal bodyposition and velocity boundary condition error (errx, errvx) must bezero or substantially zero. In the first reference example, (Xs, Vxs)that sets the horizontal body position and velocity boundary conditionerror (errx, errvx) to substantially zero is exploratorily determined.

Subsequently, the processing proceeds to S214 wherein it is determinedwhether the calculated horizontal body position and velocity boundarycondition error (errx, errvx) falls within the permissible rangeappropriately set beforehand. Instead of setting the permissible rangeof a horizontal body position and velocity boundary condition error asdescribed above, it may be determined whether the difference between aninitial divergent component (Xs+Vxs/ω0) and a divergent component at anend (Xe+Vxe/ω0) and the difference between an initial convergentcomponent (Xs−Vxs/(ω0′) and a convergent component at an end(Xe−Vxe/ω0′) respectively fall within certain permissible ranges. Aspreviously mentioned, ω0 and ω0′ denote certain predetermined values.

If the determination result of S214 is NO, then the processing proceedsto S216. In this S216, a plurality of (two in the first referenceexample) initial value candidates (Xs+ΔXs, Vxs) and (Xs, Vxs+ΔVxs) isdetermined in the vicinity of (Xs, Vxs). Here, ΔXs and ΔVxs meanpredetermined minute variation associated with Xs and Vxs, respectively.Then, taking each of these initial value candidates as an initial stateof the horizontal body position and velocity, a normal gait is generatedusing a gait parameter by the same processing as that of the above S208.Further, the body position and velocity at the end of the generatednormal gait are converted to obtain values (Xe+ΔXe1, Vxe+ΔVxe1) and(Xe+ΔXe2, Vxe+ΔVxe2) observed from a supporting leg coordinate system(the coordinate system of X″′, Y″′, and Z″′ shown in FIG. 17) associatedwith the supporting leg at that particular instant. Here, (Xe+ΔXe1,Vxe+ΔVxe1) means the body position and velocity at an end thatcorresponds to (Xs+ΔXs, Vxs), and (Xe+ΔXe2, Vxe+ΔVxe2) corresponds tothe body position and velocity at an end that corresponds to (Xs,Vxs+ΔVxs). In the processing for generating a normal gait (provisionalgait) in this case, the initial state (the state at time Ts) of avariable other than the horizontal body position and velocity may be setto the same value as that in a case where, for example, the initialvalue candidate of the horizontal body position and velocity is set to(Xs, Vxs). In S216, the same processing as that of the above S210 iscarried out to determine the difference between each initial valuecandidate and the body position and velocity at an end correspondingthereto, i.e., the horizontal body position and velocity boundarycondition error corresponding to each initial value candidate (Xs+ΔXs,Vxs), (Xs, Vxs+ΔVxs).

Next, the processing proceeds to S218 wherein, based on the horizontalbody position and velocity boundary condition error corresponding toeach of (Xs, Vxs) and the initial value candidates in the vicinitythereof (Xs+ΔXs, Vxs), (Xs, Vxs+ΔVxs), an initial value candidatefollowing (Xs, Vxs) is determined by a searching method (a method inwhich a pseudo-Jacobian (sensitivity matrix) is determined and then anext candidate is determined by the steepest descent method or the like,or the simplex method or the like). More specifically, a sensitivitymatrix indicating a changing degree of a horizontal body position andvelocity boundary condition error observed when a horizontal bodyposition and a body horizontal velocity are respectively changedminutely from the initial value candidate (Xs, Vxs) on the basis of thehorizontal body position and velocity boundary condition errorsassociated with each of (Xs, Vxs) and the initial value candidates inthe vicinity thereof (Xs+ΔXs, Vxs), (Xs, Vxs+ΔVxs) is determined, andthen, based on the determined sensitivity matrix, an initial valuecandidate (Xs, Vxs) that will further reduces the horizontal bodyposition and velocity boundary condition error is newly determined.After the new initial value candidate (Xs, Vxs) of the horizontal bodyposition and velocity is determined as described above, the processingreturns to S206.

The aforesaid processing (the processing from S206 to S218) is repeatedas long as the determination result of S214 is NO. In this case, in S300(refer to FIG. 24) of the processing for generating a normal gaitcorresponding to a new initial value candidate (Xs, Vxs) of thehorizontal body position and velocity (S208), the initial value of thebody posture angular velocity is set to the value determined in S310(refer to FIG. 24) in the processing of S208 that corresponds to thelast time's initial value candidate (Xs, Vxs) of the horizontal bodyposition and velocity rather than being set to the initial value of thereference body posture angular velocity. And if the determination resultof S214 is YES, then the processing leaves the repetition loop (S204)and proceeds to S220. The provisional normal gait generated immediatelybefore leaving the repetition loop of S204 will be obtained as thenormal gait that satisfies the boundary condition.

In S220, an initial horizontal body position and velocity (X0, V0) at anoriginal initial time 0 (the end time of the current time gait), aninitial vertical body position and velocity (Z0, Vz0) at the originalinitial time 0, and initial body posture angle and angular velocity atthe initial time 0 are determined.

Specifically, (X0, V0) and (Z0, Vz0) are determined to be the valuesobtained by converting the horizontal body position/velocity and thevertical body position/velocity, which are determined at the time ofinstant when a second turning gait is switched to a first turning gait,i.e., at time k=Tcyc (time Te−Ts), into the values observed from thesupporting leg coordinate system (the X″′, Y″′, and Z″′ coordinatesystem of FIG. 17) associated with the supporting leg of the first stepstarting from time Tcyc (i.e., a second 1st turning gait) in a casewhere a gait is generated to satisfy a gait condition on the basis of abody inclination restoring moment ZMP-converted value pattern and theinitial body posture angle and angular velocity of a normal gait at timeTs that have been determined in S310 and the horizontal body positionand velocity (Xs, Vxs) at time Ts after leaving the loop of S204.Similarly, the initial state posture angle and angular velocity aredetermined to be the values obtained by converting the body postureangle and angular acceleration determined when time k=Tcyc (time Te−Ts)into values observed from the supporting leg coordinate system (the X″′,Y″′, and Z″′ coordinate system of FIG. 17) associated with thesupporting leg of one step starting from time Tcyc (i.e., a second firstturning gait).

Subsequently, the processing proceeds to S222 wherein a normal gaitinitial divergent component q[0] is determined according to thefollowing equation.q[0 ]=X 0 +V 0/ω0  Equation 40

where ω0 takes a certain predetermined value, as explained above inrelation to the divergence.

Subsequently, the processing proceeds to S224 wherein the normal gaitinitial divergent component q[0] is converted into a value observed froma current time gait's supporting leg coordinate system, and this isdetermined as q″[0]. Further, the initial vertical body position andvelocity (Z0, Vz0) is converted into a value observed from the currenttime gait's supporting leg coordinate system, and this is determined as(Z0″, Vz0″).

Supplementally, (Z0″, Vz0″) agrees with the vertical body position andvelocity at the end of a second turning gait observed from thesupporting leg coordinate system of the second turning gait (the X″, Y″,and Z″ coordinate system of FIG. 17). In addition, q″[0] also agreeswith the divergent component at the end of the second turning gaitobserved from the supporting leg coordinate system of the second turninggait (the X″, Y″, and Z″ coordinate system of FIG. 17). Alternatively,therefore, (Z0″, Vz0″) and q″[0] may be calculated by utilizing theseproperties.

The processing further proceeds to S226 wherein initial antiphase armswing angle and angular velocity (θaz0, ωaz0) at the original initialtime 0 (the end time of the current time gait) are determined, andfurther, (θaz0″, ωaz0″), which is the value observed from the currenttime's gait supporting leg coordinate system is determined. To be morespecific, (θaz0, ωaz0) is determined to be the value obtained byconverting the antiphase arm swing angle and angular velocity, which aredetermined at the time of instant when a second turning gait is switchedto a first turning gait, i.e., at time k=Tcyc (time Te−Ts), in a casewhere a gait is generated to satisfy a gait condition on the basis of anantiphase arm swing restoring angular acceleration pattern, and initial(time Ts) antiphase arm swing angle and angular velocity of a normalgait that have been determined in S314 and S316 (more specifically, in acase where an antiphase arm swing angle trajectory is determined suchthat a floor reaction force moment vertical component does not exceed apermissible range in a period other than the body posture angle andantiphase arm swing angle restoring period, and the antiphase arm swingangle trajectory is determined such that the sum of the referenceantiphase arm swing angular acceleration βaref and the antiphase armswing restoring angular acceleration βarec is generated in the bodyposture angle and antiphase arm swing angle restoring period), into avalue observed from the supporting leg coordinate system (the X″′, Y″′,and Z″′ coordinate system of FIG. 17) associated with the supporting legof one step starting from time Tcyc (i.e., a second 1st turning gait).

Thus, the processing of S024 of FIG. 13, that is, the subroutineprocessing for determining an initial state of a normal gait isfinished.

Subsequently, the processing proceeds to S026 of FIG. 13 wherein thegait parameters of the current time gait are determined (some areprovisionally determined). To be more specific, in S026, the followingprocessing is carried out according to the flowchart shown in FIG. 39.

First, in S600, the foot trajectory parameters of the current time gaitare set such that the foot position/posture trajectory of the currenttime gait continues to the foot position/posture trajectory of a normalgait.

Specifically, the free leg foot position/posture at the start of thecurrent time gait (the initial value of the free leg footposition/posture of the current time gait) is set to current free legposition/posture observed from the current time gait's supporting legcoordinate system (the free leg position/posture at the end of the lasttime's gait). The supporting leg foot position/posture at the start ofthe current time gait (the initial value of the current time gait'ssupporting leg foot position/posture) are set to current supporting legfoot position/posture observed from the current time gait's supportingleg coordinate system (the supporting leg foot position/posture at theend of the last time's gait). The free leg foot position/posture at theend of the current time gait is determined on the basis of a next timegait's supporting leg coordinate system observed from the current timegait's supporting leg coordinate system (a required value of the freeleg landing position/posture of the first step related to the currenttime gait). More specifically, the free leg foot position/posture at theend of the current time gait are determined such that a representativepoint of a free leg foot 22 agrees with the origin of the next timegait's supporting leg coordinate system observed from the current time'sgait supporting leg coordinate system when the free leg foot 22 isturned, from the free leg foot position/posture at the end of thecurrent time gait, until substantially the entire surface of the sole ofthe foot 22 comes in contact with the ground without slippage, whilemaintaining the free leg foot 22 in contact with a floor.

At the end of the current time gait, the supporting leg foot 22 is offthe floor and floating. To determine the trajectory after the supportingleg foot 22 leaves the floor, an expected supporting leg foot landingposition/posture is set. The expected supporting leg foot landingposition/posture is set on the basis of the next but one time gait'ssupporting leg coordinate system observed from the current time gait'ssupporting leg coordinate system (a required value of the free leg footposition/posture of the second step related to the current time gait).To be more specific, the expected supporting leg foot landingposition/posture is determined such that a representative point of thefoot 22 obtained when the foot 22 is turned from that position/posturewithout slippage until substantially entire surface of the sole of thefoot 22 is brought into contact with the floor while holding the foot 22in contact with the floor agrees with the origin of the next but onetime gait's supporting leg coordinate system observed from the currenttime gait's supporting leg coordinate system.

The supporting leg foot position/posture at the end of the current timegait is determined by generating a foot position/posture trajectory froma current supporting leg position/posture (the supporting leg footposition/posture at the start of the current time gait) to the expectedfoot landing position/posture corresponding to the next time gait'ssupporting leg coordinate system (the required value of the free legfoot landing position/posture of the second step in the aforesaidrequired parameter) by using the finite-duration setting filter untilthe end of the current time gait.

Subsequently, the processing proceeds to S602 wherein the reference bodyposture trajectory parameter of the current time gait is determined inthe same manner as that for the first turning gait and the secondturning gait of a normal gait. The aforesaid parameter, however, is setsuch that the reference body posture trajectory of the current time gaitcontinuously connects to the reference body posture trajectory of theabove normal gait (such that the reference body posture angle and theangular velocity at the end of the current time gait agree with thereference body posture angle and the angular velocity, respectively, atthe start of a normal gait). In the first reference example, thereference body posture related to an inclination angle refers to asteady vertical posture in both a current time gait and a normal gait.

Next, the processing proceeds to S604 wherein the reference arm posturetrajectory parameters of the current time gait are determined in thesame manner as that for the firs turning gait and the second turninggait of the normal gait. The above parameters, however, are set suchthat the reference arm posture at the start of the current time gait andthe changing rate thereof agree with the current instantaneous values ofa reference arm posture and the changing rate thereof, and the armposture trajectory of the current time gait continuously connects withthe arm posture trajectory of the normal gait. For the arm posturetrajectory parameters determined here, the parameters related to, forexample, a total center-of-gravity position of both arms 5, 5 (arelative position with respect to the body 3), a lateral intervalbetween right and left hands (the distal ends of both arms 5, 5), and anantiphase arm swing angle are determined, as in the case where thenormal gait parameters are determined (S104 in FIG. 15). In the firstreference example, the total center-of-gravity position of both arms 5,5 is set so as to be maintained at a constant level with respect to thebody 3.

The processing then proceeds to S606 wherein the floor reaction forcevertical component trajectory parameters of the current time gait aredetermined such that the floor reaction force vertical componenttrajectory defined by the parameters will be a substantially continuous(values are not jumping in steps) trajectory as illustrated in FIG. 6mentioned above, as in the case of the first turning gait and the secondturning gait of a normal gait.

The floor reaction force vertical component trajectory parameters,however, are determined such that both the total center-of-gravityvertical position and velocity and the floor reaction force verticalcomponent trajectory of the current time gait continuously connect withthe normal gait.

To be specific, first, the value (Z0″, Vz0″) obtained by converting thevertical body position and velocity at the start of the normal gait thathas been finally determined by the processing of S024 of FIG. 13mentioned above (the processing for determining the initial state of thenormal gait) into the value observed from a current time's gaitsupporting leg coordinate system, i.e., the total center-of-gravityvertical position and velocity at the start of the normal gait observedfrom the current time's gait supporting leg coordinate system aredetermined using, for example, the above Equation 04 (or a kinematicsmodel of the robot 1) on the basis of (Z0″, Vz0″) or the like determinedin S224 of FIG. 23. To be more specific, the total center-of-gravityvertical position at the start of the normal gait observed from thecurrent time's gait supporting leg coordinate system is determined bysubstituting the body mass point vertical position of the model shown inFIG. 12, which corresponds to the vertical body position Z0″ of thenormal gait determined in S224, and the leg mass point verticalpositions of a supporting leg and a free leg, which correspond to thevalues obtained by converting individual foot positions at the start ofthe normal gait into the values observed from the current time's gaitsupporting leg coordinate system, into Equation 04. Further, the totalcenter-of-gravity vertical velocity at the start of the normal gaitobserved from the current time's gait supporting leg coordinate systemis determined by substituting the body mass point vertical velocity ofthe model shown in FIG. 12, which corresponds to the body verticalvelocity Vz0″ of the normal gait determined in S224, and the leg masspoint vertical velocities of a supporting leg and a free leg, whichcorrespond to the values obtained by converting individual foot verticalvelocities at the start of the normal gait into the values observed fromthe current time's gait supporting leg coordinate system, into anequation derived from differentiating both sides of Equation 04.Alternatively, the initial total center-of-gravity vertical position andvelocity may be calculated by using a more precise model.

Then, the initial total center-of-gravity vertical position and velocityof the normal gait determined as described above is substituted into theterminal total center-of-gravity vertical positions and velocities ofthe following equations 41a and 41b, and the total center-of-gravityvertical position and velocity of the last time's desired gaitinstantaneous value (to be more precise, the value obtained byconverting the terminal state of the last time's desired gait into thecurrent time's ciait supporting leg coordinate system) into the initialtotal center-of-gravity vertical positions and velocities of Equations41a and 41b. A floor reaction force vertical component pattern (to bemore specific, a parameter value) of the current time gait is determinedsuch that the relationship between Equations 41a and 41b is satisfied.The integrated values in Equations 41a and 41b are to be the integratedvalues in the period from the start to the end of the current time gait.Terminal total center-of-gravity vertical position−Initial totalcenter-of-gravity vertical position=Second order integration of (Floorreaction force vertical component/Total mass of the robot)+Second orderintegration of acceleration of gravity+Initial total center-of-gravityvertical velocity*Duration of one step  Equation 41aTerminal total center-of-gravity vertical velocity−Initial totalcenter-of-gravity vertical velocity=First order integration of (Floorreaction force vertical component/Total mass of the robot)+First orderintegration of acceleration of gravity  Equation 41b

where the acceleration of gravity takes a negative value.

To be more specific, first, at least two parameters out of the floorreaction force vertical component parameters (e.g., times of breakpoints) that define the floor reaction force vertical component patternas shown in FIG. 6 are taken as independent unknown variables. Thevalues of the unknown variables are determined by solving a simultaneousequation composed of Equations 41a and 41b.

The floor reaction force vertical component parameters to be selected asthe unknown variables may be, for example, the height (the peak value ofthe floor reaction force vertical component) and the width (duration ofsingle stance period) of the trapezoid shown in FIG. 6. In this case,the slopes of both sides of the trapezoid shown in FIG. 6 take valuesdetermined beforehand on the basis of a current time gait cycle or thelike, or the values of times of the break points of the floor reactionforce vertical component pattern, excluding the time at which a singlestance period is switched to a floating period, that has been determinedbeforehand on the basis of a current time gait cycle or the like.Supplementally, if only one unknown variable is given, then no solutiongenerally exists that satisfies the simultaneous equation of Equations41a and 41b.

Subsequently, the processing proceeds to S608 wherein a floor reactionforce horizontal component permissible range [Fxmin, Fxmax] (to be morespecific, the parameters defining the pattern of the floor reactionforce horizontal component permissible range) is set in the same manneras that for the first turning gait and the second turning gait of anormal gait. For instance, the floor reaction force horizontal componentpermissible range is set according to the pattern shown in FIG. 40. Inthe first reference example, the floor reaction force horizontalcomponent permissible range is set according to the aforesaid Equation12 on the basis of the floor reaction force vertical component patterndetermined previously in S606.

Then, the processing proceeds to S610 wherein a floor reaction forcemoment vertical component permissible range [Mzmin, Mzmax] (to be morespecific, the parameters defining the pattern of the floor reactionforce moment vertical component permissible range) is set in the samemanner as that for the first turning gait and the second turning gait ofa normal gait. For instance, the floor reaction force moment verticalcomponent permissible range is set according to the pattern shown inFIG. 41. In the first reference example, the floor reaction force momentvertical component permissible range is set according to the aforesaidEquation 1012 on the basis of the floor reaction force verticalcomponent pattern determined previously in S606.

Subsequently, the processing proceeds to S612 wherein the ZMP trajectoryof the current time gait (specifically, the parameters defining the ZMPtrajectory, such as times and positions of break points of thetrajectory) is set, as shown in FIG. 7, such that it exhibits a highstability margin and no sudden changes, as in the first turning gait andthe second turning gait of a normal gait. The parameters are set suchthat the ZMP trajectory of the current time gait continuously connectswith the ZMP trajectory of the aforesaid normal gait. In other words,the ZMP trajectory parameters are determined so that the ZMP position atthe end of the current time gait agrees with the ZMP position at thestart of the normal gait. In this case, in a running gait, the times andpositions of break points of the ZMP trajectory in a single stanceperiod may be set in the same manner as that for setting the ZMPtrajectory parameters of the normal gait described above. And the ZMPtrajectory parameters may be set so that a desired ZMP trajectory in afloating period linearly changes in succession from the start of thefloating period to the ZMP position at the start of a normal gait.

It should be noted that the ZMP trajectory parameters of the currenttime gait determined in S612 are merely temporary, and will becorrected, as it will be discussed hereinafter. For this reason, the ZMPtrajectory of the current time gait set as described above will behereinafter referred to as a provisional desired ZMP trajectory of acurrent time gait.

Lastly, the processing proceeds to S614 wherein a body posture angle andantiphase arm swing angle restoring period [Ta, Tb] is set. The bodyposture angle and antiphase arm swing angle restoring start time Tacorresponds to Tm in the second turning gait of a normal gait, whilebody posture angle and antiphase arm swing angle restoring end time Tbcorresponds to Ts2 in the second turning gait of the normal gait. Thesetimes Ta and Tb are set in the same manner as that for setting Tm andTs2.

Returning to the explanation of FIG. 13, after carrying out theprocessing shown in S026 (the processing for determining the gaitparameters of the current time gait) as described above, the programproceeds to S028 wherein the gait parameters (ZMP trajectory parameters)of the current time gait are corrected, and the parameter of theantiphase arm swing angle is determined. In this processing, the ZMPtrajectory parameters are corrected so as to make the bodyposition/posture trajectory continue or approximate to a normal gait,and a parameter related to the antiphase arm swing angle of the currenttime gait is determined to make the antiphase arm swing angle convergeto the antiphase arm swing angle trajectory of the normal gait.

FIG. 42 shows the subroutine flowchart illustrating the processing.

First, the processing proceeds to S702 via S700 and temporarilygenerates a provisional current time gait until the time at which thecurrent time gait ends on the basis of a provisional desired ZMP patternand other current time gait parameters.

In S702, the following processing will be carried out according to theflowchart shown in FIG. 43.

The explanation will now be given. In S800, various elements areinitialized. Specifically, zero is substituted into time k forgenerating a provisional gait. Furthermore, the initial state of thecurrent time gait is obtained by converting the terminal state of thelast time's desired gait (to be more specific, the end values of thegait states, including a horizontal body position and velocity, avertical body position and velocity, a body posture angle and itsangular velocity, a desired foot position/posture, and a desired armposture) into a current time's gait supporting leg coordinate system.

Supplementally, the desired arm posture includes desired antiphase armswing angle and angular velocity.

Subsequently, the processing goes through S802 and proceeds to S804wherein it is determined whether time k for generating a provisionalgait is before current time gait end time Tcurr (whether k≦Tcurr). Ifthe determination result is YES, then the processing proceeds to acurrent time gait instantaneous value determining subroutine of S806 todetermine an instantaneous value of time k of the current time gait. Inthe gait instantaneous value determining subroutine of S806, aprovisional gait is generated as shown in FIG. 25. However, current timegait parameters are used in place of normal gait parameters, as the gaitparameters, in the same manner as that of S306 previously described.

Subsequently, the processing proceeds to S808 to increment time k forgenerating a provisional gait by Δk, and then returns to S804.

If the determination result of S804 is NO, then the processing of theflowchart shown in FIG. 43 is completed.

The processing discussed above generates the provisional current timegait from the start and the end thereof.

Subsequently, the processing proceeds to S704 wherein a terminaldivergent component q0[k](k=Tcurr) is determined according to theequation shown in the figure (Equation 10 given above) from thehorizontal body position/velocity (Xe, Vxe) at the end of the currenttime gait determined in S702 as described above.

The processing then proceeds to S706 wherein a terminal divergentcomponent error errq, which is the difference between a current timegait end divergent component q0[k] and a normal gait initial divergentcomponent q″ (the one determined in S224 of FIG. 23), is determinedusing the illustrated equation. Further, the processing proceeds to S708wherein it is determined whether the determined terminal divergentcomponent error errq falls within a permissible range (a range in thevicinity of zero).

If the determination result of S708 is NO, then the processing proceedsto S710 wherein a=Δa (Δa being a predetermined extremely small amount)is set, and a provisional current time gait to the end thereof iscalculated, as in the aforesaid S702, on the basis of the desired ZMPobtained by adding a trapezoidal correction to the current provisionaldesired ZMP pattern according to the relationship shown in FIG. 44.Here, referring to FIG. 44, “a” denotes the height of the trapezoidalpattern for correcting a provisional desired ZMP so as to make thecurrent time gait terminal divergent component agree with the normalgait initial divergent component as much as possible (so as toapproximate the horizontal body position/posture trajectory of thecurrent time gait to the horizontal body position/posture trajectory ofthe normal gait). In this case, in the first reference example, theprovisional desired ZMP is corrected during the period in whichsubstantially the entire surface of the sole of the supporting leg foot22 comes in contact with the ground (theentire-sole-in-contact-with-the-ground period), that is, during theperiod in which the floor reaction force horizontal componentpermissible range is sufficiently wide, and the times of the breakpoints of the above trapezoidal pattern are set to balance with thetimes of the break points of the provisional desired ZMP in theentire-sole-in-contact-with-the-ground period. The setting a=Δa is givenin S710 to observe a change in the terminal divergent component errorerrq when the current provisional desired ZMP trajectory is corrected byan extremely small amount according to the aforesaid trapezoidalpattern.

After generating the provisional current time gait to the end with theprovisional desired ZMP trajectory corrected using a=Δa in S710 asdescribed above, the processing further proceeds to S712 wherein aterminal divergent component q1[k] in this provisional current time gaitis determined according to the equation shown in the figure (the aboveEquation 10) on the basis of a horizontal body position/velocity (Xe1,Vxe1) at the end of the provisional current time gait determined inS710.

In S710, Δa has been a constant of an extremely small amountappropriately set in the first reference example. Alternatively, Δa maybe set such that Δa decreases as the terminal divergent component errorerrq is decreased by repeated calculation, which will be explainedbelow. However, even if it is set as a constant, it is possible tomaintain the terminal divergent component error errq within apermissible range by performing a few repetitive calculations.

Subsequently, the processing proceeds to S714 wherein a parametersensitivity r (changing rate of the terminal divergent component errorwith respect to Δa) is determined according to the equation shown in thefigure. The processing further proceeds to S716 wherein the correctionamount of the trapezoidal pattern having, as its height a, the valueobtained by a=−errq/r, that is, the value obtained by dividing theterminal divergent component error errq determined in S706 by theparameters sensitivity r determined in S714, is added to the provisionaldesired ZMP pattern according to the relationship shown in FIG. 44,thereby correcting the provisional desired ZMP pattern (a newprovisional desired ZMP pattern is determined).

Then, the processing returns to S702. As long as the determinationresult of S708 is NO, the processing from S702 to S716 described aboveis repeated. When the determination result of S708 changes to YES, theprocessing leaves the repetition loop (S700) and moves forward to S718.

In S718, the pattern of the body posture restoring moment ZMP-convertedvalue (ZMPrec) of the current time gait is determined primarily on thebasis of the difference between a terminal body posture angle of theprovisional current time gait and an initial body posture angle of anormal gait, and the difference between a terminal body posture angularvelocity of the provisional current time gait and an initial bodyposture angular velocity of a normal gait such that the body postureangle trajectory of the current time gait approximates the body postureangle trajectory of the normal gait. The ZMPrec determined here is usedfor correcting a provisional desired ZMP so that the agreement betweenthe divergent component at the end of the current time gait and thedivergent component at the start of the normal gait (the condition inS708) may be maintained even when a body posture angular acceleration isgenerated to connect (bring close) the body posture angle trajectory tothe normal gait in the period, wherein the floor reaction forcehorizontal component permissible range becomes sufficiently wide (theperiod in a single stance period), by the processing for generating acurrent time gait instantaneous value, which will be describedhereinafter.

The ZMPrec exhibits a trapezoidal pattern similar to that explained inrelation to the processing for generating the normal gait. To be moreprecise, the ZMPrec is determined as follows. The trapezoidal pattern ofthe ZMPrec of the current time gait is set in the same manner as thatfor the trapezoidal pattern of the ZMPrec in the period of the secondturning gait shown in FIG. 30, the times (break points) of apexes of thetrapezoid being known (more specifically, the times of the break pointsof the trapezoid are balanced with the break point times of the desiredZMP), and the height of the trapezoid (parameter) of the ZMPrec isdetermined as described below, taking the height of the trapezoid as anunknown number. In this case, the time at which the trapezoid pattern ofthe ZMPrec begins to rise is denoted by Ta, and the time at which thetrapezoid pattern returns to zero is denoted by Tb.

It is usually impossible to continuously connect both body posture angleand body posture angular velocity to a normal gait at the end of thecurrent time gait if there is only one unknown parameter of the bodyposture restoring moment ZMP-converted value pattern. For this reason,in the first reference example, an unknown parameter is determined sothat the state of a gait generated gradually approximates the state of anormal gait over a plurality of steps.

Supplementally, the ZMPrec pattern in a single gait may be complicatedto produce two or more unknown parameters to continuously connect boththe body posture angle and the body posture angular velocity to thenormal gait at the end of the current time gait. This, however, may leadto a ZMPrec pattern with excessive staggered variation.

The following will explain the principle of calculation and then theprocedure of the calculation.

As previously described, the difference between the terminal bodyposture angle of the provisional current time gait that has beendetermined with the height of the trapezoid of the ZMPrec pattern beingzero in S702 as discussed above and the initial body posture angle ofthe normal gait is determined, and the determined difference is definedas θerr. Further, the difference between the terminal body postureangular velocity of the provisional current time gait and the initialbody posture angular velocity of the normal gait is determined, and thedetermined difference is denoted by vθerr.

Here, it is assumed that the current time gait is generated, definingthe height of the trapezoid of the ZMPrec pattern as a certain valuebcurr, and then the first turning gait is generated by the samealgorithm as that of the current time gait. It is assumed that the bodyposture restoring moment ZMP-converted value ZMPrec pattern of the firstturning gait is based on the sum of the ZMPrec pattern of the firstturning gait (the trapezoidal pattern shown in FIG. 30, the height ofwhich is acyc1 as mentioned above), determined in S310 of FIG. 24 and acertain value b1.

The gait generated as described above is referred to as a ZMPreccorrected gait, and its end (the end of the first turning gait) bodyposture angle and angular velocity are denoted by θ1 and vθ1,respectively.

The body posture angle and angular velocity at the end of the firstturning gait are denoted by θ1org and vθ1org, respectively, of theoriginal normal gait determined at the point when the subroutineprocessing for determining the initial state of the normal gait in S024is completed (the normal gait in a case where the body posture angle andangular velocity at the start of the normal gait finally determined inS310 are taken as the initial values, and the ZMPrec pattern is thepattern determined in S310 (the trapezoidal pattern shown in FIG. 30,the height thereof being acycl)).

Here, Δθ1 and Δvθ1 are defined as follows:Δθ1=θ1−θ1 org  Equation 50Δvθ1 =vθ1 −vθ1 org  Equation 51

Δθ1 and Δvθ1 mean the differences in body posture angle and angularvelocity, respectively, between the corrected ZMPrec gait and theoriginal normal gait at the point when these two gaits have beengenerated to the end of the first turning gait. If Δθ1 and Δvθ1 arezero, then the second turning gait generated according to the samealgorithm as that of the current time gait, setting the height of thetrapezoid of the ZMPrec pattern as acyc2, and following the correctedZMPrec, will agree with the original normal gait.

Thus, the height bcurr of the trapezoid of the current time gait and theheight b1 of the trapezoid of the first turning gait at which Δθ1 andΔvθ1 reach zero may be determined, and the determined bcurr may be takenas the finally determined height of the trapezoid of the current timegait.

The dynamic model related to the body posture angle of the robot 1 hasthe linear characteristic represented by flywheels FHx and FHy shown inFIG. 12. Hence, Δθ1 and Δvθ1 carry the relationships shown below withthe height bcurr of the trapezoid of the current time gait, the heightb1 of the trapezoid of the first turning gait, the difference θerrbetween the terminal body posture angle of the provisional current timegait and the initial body posture angle of the normal gait, and thedifference vθerr between the terminal body posture angular velocity ofthe provisional current time gait and the initial body posture angularvelocity of the normal gait.Δθ1=c11*bcurr+c12*b1+θerr+e1*vθerr  Equation 52Δvθ1=c21*bcurr+c22*b1+e2*vθerr  Equation 53

where c11, c12, c21, c22, e1, and e2 are coefficients uniquelydetermined primarily by the gait cycles of a current time gait and afirst turning gait and the parameters (particularly the parametersrelated to time) of a body posture restoring moment ZMP-converted valueZMPrec pattern.

Based on the aforementioned principle, the calculation procedure firstdetermines the body posture angle difference θerr and the angularvelocity difference Vθerr in the boundary between the provisionalcurrent time gait and the normal gait.

Then, the coefficients c11, c12, c21, c22, e1, and e2 of Equations 52and 53 are determined primarily on the basis of the gait cycles of acurrent time gait and a first turning gait and the parameters(particularly the parameters related to time) of a body posturerestoring moment ZMP-converted value ZMPrec pattern.

Next, the height bcurr of the trapezoid of the current time gait and theheight b1 of the trapezoid of the first turning gait are determined suchthat the right sides of Equations 52 and 53 become zero. In other words,bcurr and b1 are determined by solving the simultaneous equation havingthe left sides of Equation 52 and Equation 53 set to zero.

Lastly, the height of the trapezoid of the trapezoidal pattern of thebody posture restoring moment ZMP-converted value (ZMPrec) of thecurrent time gait is set to the height bcurr of the trapezoid of theabove determined current time gait.

Subsequently, the processing proceeds to S720 wherein the patternobtained by adding the body posture restoring moment ZMP-converted valuepattern determined as described above in relation to S718 to the currentprovisional desired ZMP pattern (the provisional desired ZMP patternwhen the processing leaves the repetition loop of S700) is determined asthe desired ZMP pattern of the current time gait. This processing is thesame as the processing for adding the trapezoidal pattern having theheight of Δa in S710 to the provisional desired ZMP pattern.

The following will describe the reason for adding the body posturerestoring moment ZMP-converted value pattern to the provisional desiredZMP pattern.

The provisional current time gait generated in the loop of S700 isgenerated by setting the body posture restoring moment ZMP-convertedvalue ZMPrec to zero (by setting the height parameter of the trapezoidalpattern of ZMPrec to zero). In the provisional current time gait finallygenerated in the loop of S700, the body position/velocity continues toor approximates a normal gait, whereas the body posture angle deviatesfrom the body posture angle of the normal gait and undesirably divertsin some cases.

The body posture restoring moment ZMP-converted value pattern determinedin S718 is used to generate a body posture angular acceleration forapproximating a deviation of a body posture angle with respect to anormal gait to zero.

If, however, a body posture angular acceleration based on the bodyposture restoring moment ZMP-converted value pattern determined in S718is generated without correcting the provisional desired ZMP patternfinally obtained in the loop of S700, then the horizontal body positiontrajectory has to be deviated from a horizontal body position trajectoryof the above provisional current time gait in order to satisfy thedynamic balance condition (the moment in which the resultant force ofthe gravity and the inertial force of the robot acting on the desiredZMP, excluding a vertical component, is zero). For this reason, in thepresent embodiment, the provisional desired ZMP pattern is corrected byZMPrec in order to obviate the need for deviation of the horizontal bodyposition trajectory from the one finally obtained in the loop of S700.

If a body posture angular acceleration based on the body posturerestoring moment ZMP-converted value pattern determined in S718 isgenerated in addition to the motion of the above provisional currenttime gait, then the ZMP (the point at which the moment of the resultantforce of the gravity and the inertial force produced by a motion,excluding vertical component, reaches zero) deviates by the body posturerestoring moment ZMP-converted value. Conversely, therefore, by usingthe pattern, which is obtained by adding the body posture restoringmoment ZMP-converted value pattern to a provisional desired ZMP pattern,as a desired ZMP pattern, the same body translational motion as that ofthe above provisional current time gait can be obtained by generatingthe current time gait that satisfies the desired ZMP pattern whilegenerating a body posture angular acceleration of the body inclinationmode based on the body posture restoring moment ZMP-converted valuepattern determined in S718.

The above is the reason why the pattern obtained by adding the bodyposture restoring moment ZMP-converted value pattern to the provisionaldesired ZMP pattern is used as the desired ZMP pattern.

Subsequently, the processing proceeds to S722 wherein an antiphase armswing restoring angular acceleration pattern is determined such that theantiphase arm swing angle trajectory approximates to the antiphase armswing angle trajectory of a normal gait on the basis of the differencebetween the terminal antiphase arm swing angle of the provisionalcurrent time gait and the initial antiphase arm swing angle of thenormal gait and the difference between the terminal antiphase arm swingangular velocity of the provisional current time gait and the initialantiphase arm swing angular velocity of the normal gait. The method fordetermining the pattern is almost the same as the method for determiningthe body posture restoring moment ZMP-converted value pattern in S718,except that variable names are different as shown below:

Body posture restoring moment ZMP-converted value pattern → Antiphasearm swing restoring angular acceleration pattern

Horizontal component→ Moment vertical component

This will be explained in detail below. The antiphase arm swingrestoring angular acceleration pattern is used in the processing forgenerating a current time gait instantaneous value, which will bediscussed hereinafter, to make a correction so as to connect(approximate) the antiphase arm swing angle trajectory to the normalgait in the period wherein the floor reaction force moment verticalcomponent permissible range becomes sufficient wide (a single stanceperiod).

The antiphase arm swing restoring angular acceleration pattern is atrapezoidal pattern similar to that explained in relation to theprocessing for generating the normal gait. To be more precise, theantiphase arm swing restoring angular acceleration pattern is determinedas follows. The trapezoidal pattern of the antiphase arm swing restoringangular acceleration of the current time gait is set in the same manneras that for the trapezoidal pattern of the antiphase arm swing restoringangular acceleration pattern in the period of the second turning gaitshown in FIG. 36, the times (break points) of apexes of the trapezoidbeing known (more specifically, the times of the break points of thetrapezoid are matched to the break point times of the desired ZMP), andthe height of the trapezoid (parameter) of the antiphase arm swingrestoring angular acceleration is determined as described below, takingthe height of the trapezoid as an unknown number. In this case, the timeat which the trapezoid pattern of the antiphase arm swing restoringangular acceleration begins to rise is denoted by Ta, and the time atwhich the trapezoid pattern returns to zero is denoted by Tb.

It is usually impossible to continuously connect both antiphase armswing angle and antiphase arm swing angular velocity to a normal gait atthe end of the current time gait if there is only one unknown parameterof the antiphase arm swing restoring angular acceleration pattern. Forthis reason, in the first reference example, an unknown parameter isdetermined so that the state of a gait generated gradually approximatesthe state of a normal gait over a plurality of steps.

Supplementally, the antiphase arm swing restoring angular accelerationpattern in a single gait may be complicated to produce two or moreunknown parameters to continuously connect both the antiphase arm swingangle and antiphase arm swing angular velocity to the normal gait at theend of the current time gait. This, however, may lead to an antiphasearm swing restoring angular acceleration pattern with excessivestaggered variation.

As previously described, the difference between the terminal antiphasearm swing angle of the provisional current time gait that has beendetermined with the height of the trapezoid of the antiphase arm swingrestoring angular acceleration pattern set to zero in S702 as discussedabove and the initial antiphase arm swing angle of the normal gait isdetermined, and the determined difference is defined as θazerr. Further,the difference between the terminal antiphase arm swing angular velocityof the provisional current time gait and the initial antiphase arm swingangular velocity of the normal gait is determined, and the determineddifference is denoted by vθzerr.

Here, it is assumed that the current time gait is generated, definingthe height of the trapezoid of the antiphase arm swing restoring angularacceleration pattern as a certain value bzcurr, and then the firstturning gait is generated by the same algorithm as that of the currenttime gait. It is assumed that the antiphase arm swing restoring angularacceleration pattern of the first turning gait is based on the sum ofthe antiphase arm swing restoring angular acceleration pattern (thetrapezoidal pattern shown in FIG. 36, the height of which is azcycl asmentioned above), determined in S314 of FIG. 24 and a certain value bz1.

The gait generated as described above is referred to as an antiphase armswing restoring angular acceleration corrected gait, and its end (theend of the first turning gait) antiphase arm swing angle and angularvelocity are denoted by θz1 and vθz1, respectively.

The antiphase arm swing angle and angular velocity at the end of thefirst turning gait are denoted by θz1org and vθz1org, respectively, ofthe original normal gait determined at the point when the subroutineprocessing for determining the initial state of the normal gait in S024is completed (the normal gait in a case where the antiphase arm swingangle and angular velocity at the start of the normal gait finallydetermined in S314 are taken as the initial values, and the antiphasearm swing restoring angular acceleration pattern is the patterndetermined in S314 (the trapezoidal pattern shown in FIG. 36, the heightthereof being azcyc1)).

Here, Δθz1 and Δvθz1 are defined as follows:Δθz1=θz1−θz1org  Equation 1050Δvθz1=vθz1−vθz1org  Equation 1051

Δθz1 and Δvθz1 mean the differences in antiphase arm swing angle andangular velocity, respectively, between the corrected antiphase armswing restoring angular acceleration gait and the original normal gaitat the point when these two gaits have been generated to the end of thefirst turning gait. If Δθz1 and Δvθz1 are zero, then the second turninggait generated according to the same algorithm as that of the currenttime gait, setting the height of the trapezoid of the antiphase armswing restoring angular acceleration pattern as azcyc2, and followingthe corrected antiphase arm swing restoring angular acceleration gait,will agree with the original normal gait.

Thus, the height bzcurr of the trapezoid of the current time gait andthe height bz1 of the trapezoid of the first turning gait at which Δθz1and Δvθz1 reach zero may be determined, and the determined bzcurr may betaken as the finally determined height of the trapezoid of the currenttime gait.

The dynamic model related to the antiphase arm swing angle of the robot1 has the linear characteristic represented by a flywheel FHaz shown inFIG. 12. Hence, Δθz1 and Δvθz1 carry the relationships shown below withthe height bzcurr of the trapezoid of the current time gait, the heightbz1 of the trapezoid of the first turning gait, the difference θzerrbetween the terminal antiphase arm swing angle of the provisionalcurrent time gait and the initial antiphase arm swing angle of thenormal gait, and the difference vθzerr between the terminal antiphasearm swing angular velocity of the provisional current time gait and theinitial antiphase arm swing angular velocity of the normal gait.Δθz1=cz11*bzcurr+cz12*bz1+θzerr+ez1*vθzerr  Equation 1052Δvθz1=cz21*bzcurr+cz22*bz1+ez2*vθzerr  Equation 1053

where cz11, cz12, cz21, cz22, ez1, and ez2 are coefficients uniquelydetermined primarily by the gait cycles of a current time gait and afirst turning gait and the parameters (particularly the parametersrelated to time) of an antiphase arm swing restoring angularacceleration pattern.

Based on the aforementioned principle, the calculation procedure firstdetermines the antiphase arm swing angle difference θzerr and theangular velocity difference Vθzerr in the boundary between theprovisional current time gait and the normal gait.

Then, the coefficients cz11, cz12, cz21, cz22, ez1, and ez2 of Equations1052 and 1053 are determined primarily on the basis of the gait cyclesof a current time gait and a first turning gait and the parameters(particularly the parameters related to time) of an antiphase arm swingrestoring angular acceleration pattern.

Next, the height bzcurr of the trapezoid of the current time gait andthe height bz1 of the trapezoid of the first turning gait are determinedsuch that the right sides of Equations 1052 and 1053 become zero. Inother words, bzcurr and bz1 are determined by solving the simultaneousequation having the left sides of Equation 1052 and Equation 1053 set tozero.

Lastly, the height of the trapezoid of the trapezoidal pattern of theantiphase arm swing restoring angular acceleration of the current timegait is set to the height bzcurr of the trapezoid of the abovedetermined current time gait.

Returning to FIG. 13, after the current time gait parameters arecorrected in S028 described above or if the determination result in S016is NO, then the processing proceeds to S030 to determine a current timegait instantaneous value.

In S030, the subroutine processing shown in FIG. 45 is carried out.

The same processing as that from S400 to S411 of FIG. 25 is carried outfrom S1400 to S1411 of FIG. 45, and then the processing from S1000 toS1018 of FIG. 46, which is a subroutine of S1412, is carried out.

To be specific, first, in S1000, the value of the reference body yawangle at the current time is substituted into the desired body yawangle. Further, the value of a reference arm posture at the current timeis substituted into the desired arm posture, excluding the arm postureantiphase arm swing angle and the angular velocity.

Then, the processing proceeds to S1002 wherein it is determined whetherthe current time is in the period of restoring a body posture angle andan antiphase arm swing angle (the period from time Ta to time Tb). Theprocessing proceeds to S1004 if the determination result of S1002 is NO,or to S1006 if the determination result is YES.

In S1004, the same processing as that for calculating the bodyhorizontal acceleration α, the body angular acceleration β, and theantiphase arm swing angular acceleration βa (from S504 to S528 of FIG.26) in a period other than the body inclination angle/antiphase armswing angle restoring period is carried out.

In the case where the processing proceeds to S1006, the body horizontalacceleration αtmp, which is required to satisfy the current time (timek) desired ZMP if a motion of the body translational mode is to beperformed, is determined in S1006.

Then, the processing proceeds to S1008 wherein the instantaneous valueZMPrec of a body inclination restoring moment ZMP-converted valuepattern at the current time is calculated on the basis of the parametersrelated to the body inclination restoring moment ZMP-converted valuepattern determined in S718.

The processing proceeds to S1010 wherein an instantaneous value βarec ofthe antiphase arm swing restoring angular acceleration pattern at thecurrent time is calculated on the basis of the parameters related to theantiphase arm swing restoring angular acceleration pattern determined inS722.

Subsequently, the processing proceeds to S1012 wherein the body angularacceleration (body inclination angular acceleration) β of the bodyinclination mode is determined according to the equation shown in thefigure.

Subsequently, the processing proceeds to S1014 wherein the bodyhorizontal acceleration α is determined according to the equation shownin the figure.

Subsequently, the processing proceeds to S1016 wherein the sum of theinstantaneous value βarec of an antiphase arm swing restoring angularacceleration pattern calculated in S1010 and a reference antiphase armswing angular acceleration βaref (a value obtained by subjecting areference antiphase arm swing angle to second order differentiation) issubstituted into a desired antiphase arm swing angular acceleration βa.

Subsequently, the processing proceeds to S1018 wherein a floor reactionforce horizontal component Fx when the body horizontal acceleration is ais determined.

Subsequently, the processing proceeds to S1414 wherein the bodyhorizontal acceleration and the body posture angular acceleration areintegrated to calculate a body horizontal velocity and a body postureangular velocity (body inclination angular velocity). The calculatedresult is further integrated to determine a horizontal body position anda body posture (the body inclination angle). A body yaw angle in thebody posture is determined by a reference body yaw angle in the firstreference example.

Subsequently, the processing proceeds to S1416 wherein the antiphase armswing acceleration is integrated to calculate an antiphase arm swingangular velocity. The calculation result is further integrated todetermine an antiphase arm swing angle.

Thus, the processing of S030 of FIG. 13 is completed.

Subsequently, the processing proceeds to S032 wherein time t forgenerating a gait is incremented by Δt, and returns to S014 to continueto generate gaits as described above.

The above is the processing for generating desired gaits in the gaitgenerating device 100.

The operation of the gait generating device 100 according to the firstreference example will be further explained with reference to FIG. 4. Inthe gait generating device 100, a desired gait is generated as describedabove. In the generated desired gait, a desired body position posture(trajectory) and a desired arm posture (trajectory) are sent out to arobot geometric model (an inverse kinematics calculator) 102.

A desired foot position/posture (trajectory), a desired ZMP trajectory(desired total floor reaction force central point trajectory), and adesired total floor reaction force (trajectory) (a desired floorreaction force horizontal component and a desired floor reaction forcevertical component) are sent to a composite-compliance operationdeterminer 104 and also to a desired floor reaction force distributor106. In the desired floor reaction force distributor 106, the floorreaction force is distributed to the feet 22R and 22L, and a desiredfloor reaction force central point of each foot and a desired floorreaction force of each foot are determined. The determined desired floorreaction force central point of each foot and the desired floor reactionforce of each foot are sent to the composite-compliance operationdeterminer 104.

A corrected desired foot position/posture (trajectory) with deformationcompensation is sent from the composite-compliance operation determiner104 to the robot geometric model 102. Upon receipt of the desired bodyposition/posture (trajectory) and the corrected desired footposition/posture (trajectory) with deformation compensation, the robotgeometric model 102 calculates joint displacement commands (values) oftwelve joints (10R(L), etc.) of the legs 2, 2 that satisfy them andsends the calculated commands to a displacement controller 108. Thedisplacement controller 108 performs follow-up control on thedisplacements of the twelve joints of the robot 1, using the jointdisplacement commands (values) calculated by the robot geometric model102 as desired values. In addition, the robot geometric model 102calculates arm joint displacement commands (values) that satisfy thedesired arm postures and sends the calculated commands to thedisplacement controller 108. The displacement controller 108 performsfollow-up control on the displacements of the twelve joints of the armsof the robot 1, using the joint displacement commands (values)calculated by the robot geometric model 102 as desired values.

A floor reaction force generated in the robot 1 (more specifically, anactual floor reaction force of each foot) is detected by a six-axisforce sensor 50. The detected value is sent to the composite-complianceoperation determiner 104.

In the actual body posture angular error (the difference between thedesired body posture and an actual body posture (the actual posture ofthe body 3)) occurring in the robot 1, posture inclination angle errorsθerrx and θerry (specifically, the error of the inclination angle of anactual body posture relative to the vertical direction with respect tothe inclination angle of a desired body posture relative to the verticaldirection, a posture inclination angle error in the roll direction(about the X-axis) being θerrx, and a posture inclination angle error inthe pitch direction (about the Y-axis) being θerry) is detected via aposture sensor 54, and the detected value is sent to a postureinclination stabilization control calculator 112. The postureinclination stabilization control calculator 112 calculates thehorizontal component of a compensating total floor reaction force momentabout a desired total floor reaction force central point (desired ZMP)for restoring the actual body inclination angle of the robot 1 to thedesired body posture angle, and sends it to the composite-complianceoperation determiner 104.

More specifically, in the first reference example, a compensating totalfloor reaction force moment horizontal component Mdmdxy is determinedaccording to the following equation by using, for example, PD controllaw:

$\begin{matrix}{{{Compensation}{\mspace{11mu}\;}{total}\mspace{14mu}{floor}\mspace{14mu}{reaction}\mspace{14mu}{force}\mspace{14mu}{moment}{\mspace{11mu}\;}{horizontal}{\mspace{11mu}\;}{component}\mspace{14mu}{Mdmdxy}} = {{K\;\theta\; b*{Body}{\mspace{11mu}\;}{posture}{\mspace{11mu}\;}{inclination}\mspace{14mu}{angle}{\mspace{11mu}\;}{error}} + {K\;\omega\; b*{Body}{\mspace{11mu}\;}{posture}\mspace{14mu}{inclination}{\mspace{11mu}\;}{angular}{\mspace{11mu}\;}{velocity}\mspace{14mu}{error}}}} & {d25}\end{matrix}$

where Kθb and Kωb are predetermined gains. The body posture inclinationangular velocity error is a temporal differential value of the bodyposture inclination angle error, and means an error of an actual bodyposture inclination angular velocity with respect to a desired bodyposture inclination angular velocity. The body posture inclination angleerror is, more specifically, a vector composed of a posture inclinationangle error of the body 3 of the robot 1 in the roll direction (aboutthe X-axis) and a posture inclination angle error thereof in the pitchdirection (about the Y-axis).

Furthermore, a yaw angle error θerrz in the above actual body postureangle error occurring in the robot 1 (more specifically, the postureangle error in the yaw direction (about the Z-axis) in the actual bodyposture angle error is θerrz) is detected through the intermediary ofthe posture sensor 54, and the detected value is sent to a yawstabilization control calculator 113. The yaw stabilization controlcalculator 113 calculates the vertical component of the compensatingtotal floor reaction force moment about a desired total floor reactionforce central point (desired ZMP) for converging an actual body yawangle and/or an angular velocity of the robot 1 to a desired body yawangle and/or an angular velocity, and sends it to thecomposite-compliance operation determiner 104. The composite-complianceoperation determiner 104 corrects the desired floor reaction force onthe basis of the input value. Specifically, the desired floor reactionforce is corrected such that the compensating total floor reaction forcemoment acts about the desired total floor reaction force central point(desired ZMP).

More specifically, in the first reference example, a compensating totalfloor reaction force moment vertical component Mdmdz is determinedaccording to the following equation by using, for example, the PDcontrol law:Compensating total floor reaction force moment vertical componentMdmdz=Kθbz*Body yaw angle error+Kωbz*Body yaw angular velocityerror  d26

where Kθbz and Kωbz are predetermined gains. The body yaw angularvelocity error is a temporal differential value of the body yaw angleerror, and means an error of an actual body yaw angular velocity withrespect to a desired body yaw angular velocity.

Supplementally, when the compensating total floor reaction force momentvertical component Mdmdz is determined according to the Equation d26given above, Kθbz is set to zero if the purpose is merely to prevent arotational slippage about the vertical axis or a vibration about thevertical axis between the feet 22 and a floor. This is because anattempt to approximate also the body yaw angle error to zero tends tocause an increase in an actual floor reaction force moment verticalcomponent.

The composite-compliance operation determiner 104 corrects the desiredfloor reaction force on the basis of the input value. Specifically, thedesired floor reaction force moment horizontal component is correctedsuch that the compensating total floor reaction force moment horizontalcomponent acts about the desired total floor reaction force centralpoint (desired ZMP). In addition, the desired floor reaction forcemoment vertical component is corrected by adding the compensating totalfloor reaction force moment vertical component to the desired floorreaction force vertical component about the desired total floor reactionforce central point (desired ZMP) that dynamically balances with thedesired gait.

The composite-compliance operation determiner 104 determines theaforesaid corrected desired foot position/posture (trajectory) withdeformation compensation such that the state of the actual robot 1 andthe floor reaction force calculated from sensor detection values or thelike agree with the corrected desired floor reaction force. It isactually impossible, however, to make every state agree with a desiredstate, so that a trade-off relationship is established therebetween tomake them compromisingly agree with each other as much as possible. Morespecifically, control errors with respect to desired values areweighted, and control is carried out to minimize the weighting averageof control errors (or squares of control errors). With this arrangement,the control is conducted such that actual foot position/posture and atotal floor reaction force almost follow desired foot position/postureand a desired total floor reaction force.

The main point of the present invention is the generation of gaits ofthe robot 1 by the gait generating device 100, and the construction andoperation of the composite-compliance operation determiner 104 or thelike described above are disclosed in detail primarily in JapaneseUnexamined Patent Application Publication No. 11-300661 previouslyapplied by the present applicant; therefore, no more explanation will begiven.

In S028, as previously discussed, the current time gait parameters arecorrected such that a terminal divergent component of the current timegait agrees with q″, which is a value obtained by observing an initialdivergent component q [0] of a normal turning gait from the currenttime's gait supporting leg coordinate system.

Actually, the divergent component is an indicator for assessing whetherthe horizontal body position of a generated gait converges to a normalturning gait when the gait is generated on the basis of current timegait parameters by using a dynamic model and the gait is repeatedlygenerated in succession on the basis of normal turning gait parameters.Basically, the divergent component must be defined so that a terminaldivergent component of the current time gait agrees with q″, which is avalue obtained by observing a normal turning initial divergent componentq [0] from the current time's gait supporting leg coordinate system atconvergence.

The divergent component defined by Equation 10 is actually a divergentcomponent that approximately satisfies the aforesaid properties.

Hence, in the first reference example, it may be said that the currenttime gait parameters have been corrected so that the horizontal bodyposition of a generated gait converges (approximates) to the horizontalbody position of a normal turning gait when the gait is generated on thebasis of current time gait parameters by using a dynamic model and thegait is repeatedly generated in succession on the basis of normalturning gait parameters. Strictly speaking, however, only the firstturning gait immediately following the current time gait must be a gaitthat has been corrected by the heights b1 and bz1 of the trapezoid ofthe first turning gait determined as described above. In other words, itmay be said that, in the present reference example, the current timegait parameters have been corrected so that the body posture angle of agenerated gait converges (approximates) to or agrees with the bodyposture angle of a normal turning gait formed of a second turning gaitand a first turning gait when the gait is repeatedly generated asdescribed above if the gait combining the current time gait and thefirst turning gait is regarded as the current gait.

This is the same as that disclosed in PCT publication of unexaminedapplication WO/02/40224.

Especially in the first reference example, the desired ZMP pattern ofthe gait parameters of the current time gait has been corrected so as tosatisfy the condition (the current time gait approximating to the normalgait). This will be explained with reference to FIG. 47. The trajectoryindicated by reference mark B in the figure shows the horizontal bodyposition trajectory generated so that divergent components agree at agait boundary, as described above.

The trajectory indicated by reference mark A in the figure shows thehorizontal body position trajectory obtained when a current time gait isgenerated so that horizontal body positions/velocities at boundaries ofnormal turning gaits agree, and then a normal gait is repeatedlygenerated.

As shown in the figure, the trajectory indicated by reference mark Bgenerally deviates from the trajectory indicated by reference mark A atthe boundary of the current time gait and a first normal turning gait.Thereafter, however, the trajectory indicated by reference mark Bgradually converges to (approximates) the trajectory indicated byreference mark A and substantially agrees with the trajectory indicatedby reference mark A in the next normal turning gait period. Thus, thegait generating technique for making only the divergent components agreeat a gait boundary also permits the prevention of gait divergence, asthe gait generating technique for making both position and velocityagree at a gait boundary. The example indicated by reference mark C inthe figure shows an example wherein a trajectory has been generatedwithout considering them. In such a case, the generated trajectorydiverges as time elapses. It is of course possible to complicate adesired ZMP pattern and a plurality of parameters is adjusted to makeboth position and velocity agree. This, however, may lead to a staggereddesired ZMP pattern. Incidentally, if both position and velocity agree,then divergent components also agree, so that the method for making bothposition and velocity agree may be said to be a special example of themethod for making divergent components agree.

Furthermore, in the first reference example, it may be said that thecurrent time gait parameters have been corrected so that the bodyposture angle of a generated gait converges (approximates) to or agreeswith the body posture angle of a normal turning gait when the gait isgenerated on the basis of current time gait parameters by using adynamic model and the gait is repeatedly generated in succession on thebasis of normal turning gait parameters. However, strictly speaking,only the first turning gait immediately following the current time gaitmust be a gait that has been corrected by the heights b1 and bz1 of thetrapezoid of the first turning gait determined as described above.

A few modifications of the first reference example will be explainedbelow.

In the first reference example, for easier understanding, it has beenarranged so that the floor reaction force horizontal componentpermissible range can be independently set for the longitudinaldirection (X-axis direction) component and the lateral direction (Y-axisdirection) component. More slippage-resistant gaits are generated byrepresenting it by a relational expression of the longitudinal directionand the lateral direction.

For instance, a so-called friction circle shown by the followingequation may be used as a permissible range.(X component of floor reaction force horizontal component)*(X componentof floor reaction force horizontal component)+(Y component of floorreaction force horizontal component)*(Y component of floor reactionforce horizontal component)≦(ka*μ*Fz)*(ka*μ*Fz)  Equation 59

where Fz denotes a desired floor reaction force vertical component, μdenotes a frictional coefficient, and ka denotes a positive constant of1 or less.

However, if the floor reaction force horizontal component permissiblerange is represented by the relational expression of the longitudinaldirection and the lateral direction, as described above, then it isnecessary to simultaneously or alternately determine a motion on asagittal plane and a motion on a lateral plane so as to simultaneouslyor alternately satisfy the permissible range.

A permissible range composed of a set of a floor reaction forcehorizontal component and a floor reaction force moment verticalcomponent may be set instead of setting the floor reaction forcehorizontal component permissible range and the floor reaction forcemoment vertical component permissible range separately, as describedabove. As the floor reaction force horizontal component increases, thefriction limit of a floor reaction force moment vertical componentdiminishes. Further, as the floor reaction force moment verticalcomponent increases, the friction limit of the floor reaction forcehorizontal component diminishes. Taking this into account, therefore,setting a permissible range composed of the set of a floor reactionforce horizontal component and a floor reaction force moment verticalcomponent makes it possible to set a permissible range that is closer toan actual friction limit characteristic. Specifically, a permissiblerange may be set for a weighted average of an absolute value of a floorreaction force horizontal component and an absolute value of a floorreaction force moment vertical component.

The sum of a total center-of-gravity vertical acceleration of a robotand gravity acceleration is proportional to a floor reaction forcevertical component. Hence, a parameter defining a totalcenter-of-gravity vertical acceleration trajectory may be explicitly setin place of a floor reaction force vertical component trajectory, as agait parameter. This is substantially the same. Alternatively, aparameter defining a vertical acceleration trajectory of a part havingits behavior approximating to a total center-of-gravity trajectory of arobot may be explicitly. For instance, if the mass of a leg issufficiently smaller than the mass of a body, then a body verticalacceleration trajectory and the total center-of-gravity verticalacceleration trajectory of a robot will be substantially identical orproportional; therefore, the body vertical acceleration trajectory maybe used in place of a floor reaction force vertical componenttrajectory. Similarly, a floor reaction force horizontal component and atotal center-of-gravity horizontal acceleration of a robot carry aproportional relationship, so that the total center-of-gravityhorizontal acceleration of a robot and its permissible range may be usedin place of the floor reaction force horizontal component and itspermissible range in the first reference example. Further alternatively,a parameter related to the horizontal acceleration trajectory of a partwhose behavior approximates to a total center-of-gravity horizontaltrajectory of a robot may be explicitly set. For instance, if the massof a leg is sufficiently smaller than the mass of a body, then a bodyhorizontal acceleration trajectory and the total center-of-gravityhorizontal acceleration trajectory of a robot will be substantiallyidentical or proportional; therefore, the body horizontal accelerationand its permissible range may be used in place of a floor reaction forcehorizontal component and its permissible range.

Further, the vertical component of a floor reaction force moment about adesired ZMP and the vertical component of an angular momentum changingrate of an entire robot carry a proportional relationship; therefore,the vertical component of the angular momentum changing rate of theentire robot and its permissible range may be used in place of the floorreaction force moment vertical component and its permissible range inthe first reference example.

In the first reference example, two motion modes, namely, the bodyinclination mode and the body translational mode, have been used toobtain proper values for the floor reaction force horizontal componentand the floor reaction force moment horizontal component about a desireZMP; however, motion modes other than these may be used.

For example, as shown in FIG. 48, when the body posture is turned withthe hip joints being as the turning center, the angular momentum aboutthe total center of gravity changes and the total center of gravity alsochanges. Overlapping (combining) this motion and the above-mentionedbody translational mode at a predetermined ratio produces almost thesame motion as that of the body inclination mode, and the floor reactionforce horizontal component is no longer generated. Hence, if this isregarded again as the body inclination mode, then a similar gait can begenerated according to the algorithm of the first reference example.

Thus, it is not required that one of the motion modes is a motion modethat does not produce a floor reaction force horizontal component. Thisis because any floor reaction force horizontal component and a floorreaction force moment about a desired ZMP can be generated as in theaforesaid example by any combination of modes as long as two motionmodes having different generation ratios of a floor reaction forcehorizontal component and a floor reaction force moment about a desiredZMP are used.

A motion mode other than the motion mode that changes a body posture maybe used. It is preferable, however, to select a motion mode that allowsa large floor reaction force horizontal component or a floor reactionforce moment about a desired ZMP to be generated in response to aminimized displacement.

For example, a motion mode for swinging the distal positions of rightand left arms in the same direction, or a motion mode for perturbatingthe position of a foot not in contact with the ground (existing in theair) may be selected. However, when perturbating a free leg trajectory,the amount of perturbation should be return to virtually zero by thetime immediately before landing so that a landing position will notchange. It is of course possible to combine the motion mode for swingingthe distal positions of right and left arms in the same direction and anantiphase arm swing mode.

Further alternatively, three or more motion modes may be used.

In at least two of selected motion modes, the ratios of a floor reactionforce horizontal component to a floor reaction force moment about adesired ZMP generated by the motion modes must be different from eachother. Otherwise, there will be usually no solution of a simultaneousequation (the behavior of each motion mode cannot be uniquelydetermined).

In addition, it is preferred to combine, as much as possible, a motionmode that allows a sufficiently large change to take place in a floorreaction force moment about a desired ZMP while minimizing the change ofa floor reaction force horizontal component, and a motion mode thatallows a sufficiently large change to take place in a floor reactionhorizontal component while minimizing the change of a floor reactionforce moment about a desired ZMP.

In other words, it is desirable to combine a motion mode that allows asufficiently large change to take place in an angular momentum whileminimizing the change of a total center of gravity, and a motion modethat allows a sufficiently large change to take place in a total centerof gravity while minimizing the change of an angular momentum. This isbecause a displacement of a motion mode will be smaller.

Further, a body yaw rotation mode may be used in place of the antiphasearm swing mode to prevent a floor reaction force moment verticalcomponent from exceeding a permissible range (to cancel a spinningforce). When the body yaw rotation mode is used, it is preferred todivide the body 3 of the robot 1 into a part close to the waist (e.g.,the part below a member 54 shown in FIG. 1) and the part above it (e.g.,the part above the member 54) such that the upper part may turn in theyaw direction (e.g., about a trunk axis of the body 3) relative to thepart close to the waist. This makes it possible to allow the upper partof the body 3 to rotate so as to adjust a floor reaction force momentvertical component without affecting the postures of the legs 2 and 2.In a first reference example in such a case, the rotational angle of theupper part of the body 3, the angular velocity thereof and the angularacceleration thereof may be determined instead of determining theantiphase arm swing angle, the angular velocity thereof, and the angularacceleration thereof in, for instance, the aforementioned firstreference example. In this case, the relative positions of the two arms5 and 5 with respect to, for example, the upper part of the body 3 maybe fixed. An antiphase arm swing operation of the two arms 5 and 5 maybe of course added in addition to the 5 yaw rotation of the upper partof the body 3.

Alternatively, a motion mode may be used that displaces a part otherthan the arms and the body as long as it generates a floor reactionforce moment vertical component.

For example, a motion mode may be used that moves the distal ends ofboth legs in opposite longitudinal directions in a floating period.

Alternatively, a few motion modes generating a floor reaction forcemoment vertical component may be used at the same time. For example, theantiphase arm swing mode and the body yaw rotation mode may be used atthe same time.

The body yaw rotation mode and the antiphase arm swing mode are themodes that generate a floor reaction force moment vertical component insuch a manner that a total center-of-gravity position remains unchanged(in other words, without generating a floor reaction force horizontalcomponent). However, motions causing a total center-of-gravity positionto change (in other words, motions that generate floor reaction forcehorizontal components) may be also used. This is because the floorreaction force horizontal component can be adjusted by combining thesemodes with the body translational mode.

In addition to the dynamic model used in the aforesaid first referenceexample (the dynamic model shown in FIG. 12), the following models maybe used.

-   1) Non-linear model having mass points set at a plurality of links,    as shown in FIG. 49 (multi-mass-point model). Inertia (inertial    moment) may be set at each link of the model.-   2) Three-mass-point model disclosed in PCT Kokai publication    WO/02/40224 by the present applicant.-   3) Model that ignores the moment of an inertial force generated by    the body yaw rotation mode or the antiphase arm swing mode.-   4) Separate type model that separately has a partial model    representing a relationship between a resultant force of gravity and    an inertial force (or a floor reaction force balancing therewith)    and a body translational motion, and a partial model representing    the above resultant force and a body posture rotational motion (a    body inclination motion and a body yaw rotational motion). For    instance, the mass points shown in FIG. 12 constitute a partial    model representing the relationship between the above resultant    force and the body translational motion, and the flywheels shown in    FIG. 12 constitute a partial model representing the relationship    between the above resultant force and a body posture rotational    motion.

Any one of 1) through 4) shown above requires a motion mode thatgenerates a moment vertical component of an inertial force.

The same model may be used for each processing or models may be properlyused according to processing. For example, the aforementioned normalgait is generated merely to determine a terminal state of the currenttime gait, so that the dynamic accuracy required of the normal gait islower than that required of the current time gait. Hence, for example,the processing for generating the current time gait may use the dynamicmodel shown in FIG. 12 (the model with 3 mass points+flywheels), whilethe processing for generating a normal gait (particularly S408 and S412of FIG. 21) may generate a normal gait by using a dynamic model composedof a body mass point 3 m corresponding to the body 3 and flywheels FHx,FHy, FHaz, and FHbz (the model of one mass point+flywheels, whichcorresponds to the model of FIG. 12 from which leg mass points 2 m and 2m have been removed), ignoring the mass of each leg 2. The processingfor generating the normal gait in this case may carry out the processingof S408 and S412 of FIG. 25 with the mass of the leg mass point beingset to zero in the aforesaid reference example. This makes it possibleto dramatically reduce the calculation volume in the processing ofgenerating normal gaits.

In the aforesaid first reference example, the block charts, theflowcharts, and algorithms or the like may be subject to equivalentmodifications, including modified calculation processing sequences.Furthermore, a low-pass filter may be inserted, as necessary.

Although the aforesaid first reference example has been explained inconjunction with the bipedal mobile robot; however, it may be appliedalso to multi-legged robots having three or more feet.

Instead of using the techniques for determining the initial state of anormal gait (primarily an initial horizontal body position/velocity, andinitial vertical body position/velocity and antiphase arm swing angleand angular velocity) by using exploratory techniques or partially usinganalyzing techniques, as in the aforesaid first reference example,diverse normal gait parameters may be calculated using the abovetechniques beforehand and the relationship between the normal gaitparameters and the initial states of the normal gait may be mapped orprocessed into an approximate expression and stored so as to determinethe initial values of the normal gait on the basis of the relationship,which has been mapped or formed into approximate expressions, at thetime of actual travel.

Further alternatively, a function that combines the aforesaidrelationship, which has been mapped or processed into an approximateexpression, and the aforesaid function f may be mapped or processed intoan approximate expression and stored. More specifically, from the normalgait parameters composed of the aforesaid foot trajectory parameters,the floor reaction force vertical component trajectory parameters, etc.,the functions for directly determining the divergent components ofnormal gaits may be mapped or processed into approximate expressions andthe results may be stored. For example, a normal gait may be generatedin advance for each set of a plurality of types of typical normal gaitparameters, the initial state of the normal gait for each set of normalgait parameters (to be determined in S024 of FIG. 13) may be determinedbeforehand, and a map that shows the relationship between the normalgait parameters of each set and the normal gait initial states may beprepared in advance. Then, when generating a desired gait, the initialstate of a normal gait may be determined by selecting or interpolatingfrom among the sets of the determined normal gait parameters on thebasis of the aforesaid map. This arrangement obviates the need forgenerating a normal gait each time a current time gait is generated,thus permitting a significant reduction in the amount of calculation forthe processing of generating a desired gait.

As the method for correcting a current time gait to connect(approximate) it to a normal gait, the desired ZMP parameter of thecurrent time gait has been corrected in the first reference example.However, other parameters may alternatively be corrected.

For instance, the trajectory of a free leg in the air in a current timegait may be changed. If, for example, a horizontal body position islikely to shift farther to the rear than a normal gait, then a free legis promptly moved forward after it leaves a floor so as to shift theposition of the center of gravity of the free leg toward the front. Thiscauses the horizontal body position for satisfying a desired ZMP to beunavoidably further accelerated toward the front. As a result, thehorizontal body position moves further forward at the end of the currenttime gait, making it possible to balance with the normal gait.

Instead of correcting a desired ZMP parameter, the cycle of a currenttime gait may be corrected. For instance, if the horizontal bodyposition is likely to shift farther backward than a normal gait, thenthe cycle of the current time gait may be extended. Extending the cycleof the current time gait will extend the time for the horizontal bodyposition to move, permitting extra forward movement to be accomplishedaccordingly.

However, if a desired ZMP parameter is corrected when determining anappropriate value of the horizontal body position or the like by anexploratory technique, the horizontal body position at the end of thecurrent time gait changes substantially proportionally to a correctionamount of the desired ZMP, so that the number of explorations of theappropriate value can be reduced. In comparison to this, correcting thecenter-of-gravity trajectory of a free leg or the cycle of a gaitrequires a greater number of explorations for the appropriate value,because the horizontal body position at the end of the current time gaitchanges considerably nonlinearly in response to the correction.

In the first reference example, the desired ZMP parameter of the currenttime gait has been corrected, as the method for correcting the currenttime gait to connect (approximate) it to the normal gait. This methodmay lead to an excessive correction amount (correction amount a shown inFIG. 34) of the desired ZMP parameter in some cases. For instance, if arequest for an abrupt changeover from the gait of hopping at a spot to ahigh-speed travel (a request for running) is issued, then the desiredZMP parameter must be given an extremely large shift backward relativeto an advancing direction in order to ensure connection (approximation)to a high-speed normal gait (normal gait for running). In this case, asdiscussed above, gait parameters in addition to the desired ZMPparameter are preferably corrected. In this case, however, the requestfor such an abrupt acceleration itself is actually unreasonable, so thata required value itself may be corrected.

To correct the required value, a normal gait satisfying the request (therequired parameter), for example, is determined for the time beingaccording to the procedure shown in the first reference example, and atthe point when a current time gait parameter has been determined so thatit connects to the normal gait, it is determined whether the safetymargin for the desired ZMP trajectory of the current time gait has beenunduly reduced. If the safety margin has reduced too much (if thedesired ZMP has deviated from a so-called supporting polygon or thedesired ZMP is positioned near an edge of the supporting polygon), thenthe request may be corrected.

Alternatively, the permissible range of acceleration/deceleration of agait (Next time gait initial velocity−Current time gait initialvelocity)/Cycle of current time gait) is set beforehand, and at thepoint when a request (a required parameter related to a gait cycle) isreceived, the acceleration/deceleration based on the request isdetermined, and if the determined acceleration/deceleration exceeds thepermissible range, then the request may be corrected so that it fallswithin the permissible range.

Supplementally, if simple dynamic models as discussed above are used,the aforesaid ΔMp, ΔFp, ΔMr, ΔFr, ΔMaz, and ΔMbz may be analyticallydetermined by dynamic calculation; however, if a general, morecomplicated dynamic model is used, then they may be determined asfollows. A floor reaction force in a case where the body 3 isaccelerated by an extremely small amount by the body translational modeor accelerated by an extremely small amount by the body inclination modeis determined, and then the difference between this determined floorreaction force and the floor reaction force obtained in a case where thebody 3 is not accelerated is determined. Then, the difference is dividedby the above extremely small amount.

Alternatively, the average value of each of ΔMp, ΔFp, ΔMr, ΔFr, ΔMaz,ΔMbz, and ΔMp/ΔMr or the like in standard gaits may be determined inadvance and may be used. ΔMp, ΔFp, ΔMr, ΔFr, ΔMaz, ΔMbz, and ΔMp/ΔMrvary according to a state (a posture and its changing rate), so that theaccuracy slightly deteriorates, as compared with a method in which theyare determined for each state at each instant; however, the amount ofcalculation can be significantly reduced when models that are morecomplicated than the aforesaid models are used.

The following method may be used as the method for determining theheight bzcurr of the trapezoid of the antiphase arm swing restoringangular acceleration pattern of the current time gait.

The antiphase arm swing angle and the angular velocity at the end of thecurrent time gait of the aforesaid gait with a corrected antiphase armswing restoring angular acceleration (refer to the explanation of S722of FIG. 42) are denoted by θzcurr and vθccurr, respectively, and thedifferences between these and the antiphase arm swing angle and theangular velocity of a normal gait are denoted by Δθzcerr and Δvθzcerr.

A discrete type state equation may be set up, in which a gait cycle isdefined as an interval, the differences θzerr and vθzerr between theantiphase arm swing angle and the angular velocity at the end of aprovisional current time gait and the initial antiphase arm swing angleand the angular velocity of a normal gait denote a last time's state,bzcurr denotes an input, and Δθzcerr and Δvθzcerr denote a currentstate, and then a feedback rule may be determined using a modern controltheory or the like so as to converge Δθzcerr and Δvθzcerr to zero. Thedetermined feedback rule may be used to obtain bzcurr.

Based mainly on the difference between desired antiphase arm swingangle/angular velocity and reference antiphase arm swing angle/angularvelocity at each instant, the value of the antiphase arm swing restoringangular acceleration βarec at each instant may be determined by using astate feedback rule or the like so as to converge the above differenceto zero rather than using a trapezoidal pattern to determine theantiphase arm swing restoring angular acceleration βarec of a currenttime gait and/or a normal gait.

Based on desired antiphase arm swing angle/angular velocity of a currenttime gait at each instant, the antiphase arm swing restoring angularacceleration βarec at each instant may be determined by using a statefeedback rule or the like such that these will approximate initialantiphase arm swing angle/angular velocity of a first turning gaitrather than using a trapezoidal pattern to determine the antiphase armswing restoring angular acceleration βarec of a current time gait and/ora normal gait.

To generate a gait for traveling on a slope (when moving the robot 1 ona slant floor surface), the permissible range of the floor surfacehorizontal component of a translational floor reaction force (acomponent parallel to the floor surface), that is, the permissible rangeof fictional force, or the permissible range of the floor surfacehorizontal component of a total center-of-gravity acceleration (this isproportionate to a frictional force) may be set in place of a floorreaction force horizontal component permissible range or a totalcenter-of-gravity acceleration horizontal component permissible range. Acase, for example, where the permissible range of the floor surfacehorizontal component (frictional force) of a translational floorreaction force will be explained (this explanation applies also to acase where the permissible range of a floor surface horizontal componentof total center-of-gravity acceleration is set). The frictional force isdetermined according to Equation 72 shown below if an inclination anglerelative to the horizontal plane of a floor surface is defined as θf (aslope down forward in the direction in which the robot 1 advances isdefined as a positive slope). Therefore, to generate a gait according tothe same algorithm as that in the aforesaid first reference example, theEquation 72 may be used to convert a frictional force permissible rangeinto a floor reaction force horizontal component permissible rangethereby to set the floor reaction force horizontal component permissiblerange. In this case, a desired floor reaction force vertical componentmay be used as the floor reaction force vertical component of Equation72.Frictional force=Floor reaction force horizontal component*cos(θf)−Floorreaction force vertical component*sin(θf)  Equation 72

When generating a gait for traveling on a slope (when moving the robot 1on an inclined floor surface), a floor reaction force moment verticalcomponent can be converted into a moment in the direction of the normalline of a floor surface frictional force by Equation 1072, so that thepermissible range of the component in a floor surface normal line of afloor reaction force moment, i.e., the permissible range of the momentin the direction of the normal line of a floor surface frictional force,may be set in place of the permissible range of a floor reaction forcemoment vertical component.Moment in the direction of the normal line of floor surface frictionalforce=Vertical component of floor reaction forcemoment*cos(θf)  Equation 1072

The parameters of a current time gait may be re-determined in the middleof the generation of a current gait, as disclosed in PCT Kokaipublication WO/02/40224 by the present applicant, instead of determiningthem when a preceding gait is completed, as in the aforesaid firstreference example. This allows an immediate response to be taken if agait request changes, although it involves an increased calculationvolume.

If correction of a gait (re-determination of a current time gaitparameter) is not completed within a current control cycle, then anuncorrected gait or provisionally corrected gait (a gait in the middleof exploration, i.e., a gait that does not fully satisfy an explorationcompletion condition (a deviation of a gait boundary condition beingless than a permissible value)) is tentatively output, and a properlycorrected (non-provisional) gait may be output by the next control cycleor by a plurality of control cycles later. The corrected desired ZMPtrajectory and desired floor reaction force vertical componenttrajectory are connected, and these do not suddenly change in a shorttime; therefore, the desired ZMP trajectory and the desired floorreaction force vertical component trajectory of the current time gaitwill hardly present a problem although they will be slightly staggered.

The aforesaid first reference example has explained the example of thecase where the running gait shown in FIG. 5 is generated; however, adesired gait can be generated in the same manner as that in theaforesaid first reference example when a walking gait of the robot 1 isgenerated. In this case, in the aforesaid first reference example, forinstance, a desired floor reaction force vertical component may be setaccording to the pattern shown in, for example, FIG. 50 in place of theone shown in FIG. 6 mentioned above. In this example, a floor reactionforce vertical component trajectory is set to exhibit a trapezoidalshape projecting to an increasing side of the floor reaction forcevertical component in a double stance period, and to exhibit atrapezoidal shape projecting to a decreasing side of the floor reactionforce vertical component in a single stance period. The details of themethod for setting heights C1 and C2 of the trapezoidal portions, andothers are explained in detail in, for example, PCT Kokai publicationWO/03/057425/A1 by the present applicant. Hence, the explanation will beomitted.

A second reference example will now be explained with reference to FIG.53 through FIG. 58 on the basis of the first reference example and themodifications thereof explained above. In the explanation of the secondreference example, like constituent parts or like functional parts asthose in the aforesaid first reference example will be assigned likereference numerals as those in the aforesaid first reference example,and the explanation thereof will be omitted. Especially in the secondreference example, the aspects explained with reference to FIG. 1 toFIG. 3 and FIG. 5 to FIG. 12 are identical to those in the aforesaidfirst reference example.

An outline of the aspects of the second reference example that aredifferent from those of the aforesaid first reference example will beexplained. In the second reference example, a desired gait is correctedin addition to manipulating a desired floor reaction force forcompliance control in order to approximate an actual body posture angleerror, which is the difference between a desired body posture angle andan actual body posture angle (an error of an inclination angle and anerror of a yaw angle with respect to the vertical direction of the body3), and/or the changing rate thereof to zero. In particular, thevertical component of a floor reaction force moment about a desired ZMPthat dynamically balances with a desired gait (the resultant force ofthe inertial force and gravity of a motion of a desired gait balanceswith the vertical component of a moment generated about the desired ZMP)is also corrected on the basis of a yaw angle component and/or itsangular velocity out of an actual body posture error.

A block diagram showing the functional construction of a control unit 60in the second reference example is shown in FIG. 53. The following willexplain the aspects of the functional construction of the control unit60 in the second reference example that are different from those of theaforesaid first reference example (those shown in FIG. 4).

In the second reference example, the compensating total floor reactionforce moment horizontal component Mdmdxy calculated in a postureinclination stabilization control calculator 112 is supplied to acompensating total floor reaction force moment horizontal componentdistributor 110. The compensating total floor reaction force momenthorizontal component distributor 110 divides the compensating totalfloor reaction force moment horizontal component Mdmdxy into a desiredfloor reaction force moment horizontal component for compliance controland a model manipulation floor reaction force moment horizontalcomponent. In other words, based on an actual body posture inclinationangle error, the desired floor reaction force moment horizontalcomponent for compliance control and a model manipulation floor reactionforce moment horizontal component are determined by the postureinclination stabilization control calculator 112 and the compensatingtotal floor reaction force moment horizontal component distributor 110.

Specifically, in the compensating total floor reaction force momenthorizontal component distributor 110, a model manipulation floorreaction force moment horizontal component is determined first accordingto the equation given below. Incidentally, a permissible range of thefloor reaction force moment horizontal component is determined in thegait generating device 100, as will be discussed hereinafter.

If Mdmdxy>Upper limit value of the permissible range of a floor reactionforce moment horizontal component, then

Model manipulation floor reaction force moment horizontalcomponent=−Mdmdxy+Upper limit value of the permissible range of a floorreaction force moment horizontal component.

If Mdmdxy<Lower limit value of the permissible range of a floor reactionforce moment horizontal component, then

Model manipulation floor reaction force moment horizontalcomponent=−Mdmdxy+Lower limit value of the permissible range of a floorreaction force moment horizontal component

If the lower limit value of the permissible range of a floor reactionforce moment horizontal component≦Mdmdxy, and Mdmdxy≦the upper limitvalue of the permissible range of a floor reaction force momenthorizontal component, thenModel manipulation floor reaction force moment horizontalcomponent=0  Equation d27a

Then, a desired floor reaction force moment horizontal component forcompliance control is determined according to the following equation.Desired floor reaction force moment horizontal component for compliancecontrol=Mdmdxy+Model manipulation floor reaction force moment horizontalcomponent  Equation d27b

Accordingly, the floor reaction force moment horizontal components aredetermined such that the difference between the desired floor reactionforce moment horizontal component for compliance control and the modelmanipulation floor reaction force moment horizontal component is equalto Mdmdxy.

A block diagram of the compensating total floor reaction force momenthorizontal component distributor 110 that performs the aforesaidcalculations is shown in FIG. 54.

The compensating total floor reaction force moment vertical componentMdmdz determined in the same manner as that in the afore-mentioned firstreference example in the yaw stabilization control calculator 113 (referto the aforesaid Equation d26) is supplied to a model manipulation floorreaction force moment vertical component determiner 111. The modelmanipulation floor reaction force moment vertical component determiner111 determines a model manipulation floor reaction force moment verticalcomponent on the basis of the compensating total floor reaction forcemoment vertical component Mdmdz. In other words, the compensating totalfloor reaction force moment vertical component Mdmdz and the modelmanipulation floor reaction force moment vertical component aredetermined on the basis of a body yaw angle error out of an actual bodyposture angle error by the yaw stabilization control calculator 113 andthe model manipulation floor reaction force moment vertical componentdeterminer 111.

Specifically, in the model manipulation floor reaction force momentvertical component determiner 111, a model manipulation floor reactionforce moment vertical component is determined according to the equationgiven below. Incidentally, the permissible range of the floor reactionforce moment vertical component compensation amount is determined in thegait generating device 100, as will be discussed hereinafter.

If Mdmdz>Upper limit value of the permissible range of a floor reactionforce moment vertical component compensation amount, then

Model manipulation floor reaction force moment verticalcomponent=−Mdmdz+Upper limit value of the permissible range of a floorreaction force moment vertical component compensation amount.

If Mdmdz<Lower limit value of the permissible range of a floor reactionforce moment vertical component compensation amount, then

Model manipulation floor reaction force moment verticalcomponent=−Mdmdz+Lower limit value of the permissible range of a floorreaction force moment vertical component compensation amount.

If the lower limit value of the permissible range of a floor reactionforce moment vertical component compensation amount≦Mdmdz, and Mdmdz≦theupper limit value of the permissible range of a floor reaction forcemoment vertical component compensation amount, thenModel manipulation floor reaction force moment verticalcomponent=0  Equation d26b

A block diagram of the model manipulation floor reaction force momentvertical component determiner 111 that performs the aforesaidcalculations is shown in FIG. 55. Thus, the model manipulation floorreaction force moment vertical component is set to the portion of thecompensating total floor reaction force moment vertical component Mdmdzthat has deviated from the permissible range of the floor reaction forcemoment vertical component compensation amount, the sign of the portionbeing reversed.

The desired floor reaction force moment horizontal component forcompliance control and the compensating total floor reaction forcemoment vertical component Mdmdz are sent to the composite-complianceoperation determiner 104.

The model manipulation floor reaction force moment horizontal componentand vertical component are sent to the gait generating device 100.

In place of the compensating total floor reaction force moment verticalcomponent Mdmdz, the sum of the compensating total floor reaction forcemoment vertical component Mdmdz and the model manipulation floorreaction force moment vertical component may be sent as a desired valuefor compliance control to the composite-compliance operation determiner104.

The composite-compliance operation determiner 104 corrects the desiredfoot position/posture such that an actual floor reaction forceapproximates the desired total floor reaction force corrected by addinga desired floor reaction force moment horizontal component forcompliance control and the compensating total floor reaction forcemoment vertical component Mdmdz to a desired total floor reaction forcegenerated by the gait generating device 100, while making the motion ofthe robot 1 follow the motion of a desired gait generated by the gaitgenerating device 100, thereby determining a corrected desired footposition/posture (trajectory) with deformation compensation.

In this case, it is actually impossible to make every state of footposition/posture of the robot 1 and floor reaction force agree with atarget, so that a trade-off relationship is provided between them toreach compromisingly closest possible agreement, as in the aforesaidfirst reference example.

Although it will be discussed in more detail hereinafter, the gaitgenerating device 100 generates the motion of a desired gait(particularly a body position/posture trajectory) by using a dynamicmodel so that the floor reaction force moment horizontal component aboutthe desired ZMP determined by the gait generating device 100 becomes amodel manipulation floor reaction force moment horizontal component.Furthermore, the gait generating device 100 corrects the motion of thedesired gait (particularly an arm swing trajectory) such that a modelmanipulation floor reaction force moment vertical component isadditionally generated in the desired floor reaction force momentvertical component about the desired total floor reaction force centralpoint (the desired ZMP) that dynamically balances with the desired gait(provisional desired gait) generated, assuming the model manipulationfloor reaction force moment is zero.

The functional construction of the control unit 60 other than the aboveis identical to that of the aforesaid first reference example.Supplementally, the desired gait generated in the aforesaid firstreference example is identical to the desired gait generated when themodel manipulation floor reaction force moment horizontal component andthe model manipulation floor reaction force moment vertical componentare steadily set to zero in the second reference example.

An operation (processing for generating a gait) of the gait generatingdevice 100 in the second reference example will be explained in detailbelow in conjunction with FIG. 56 showing its main flowchart. From S3010to S3028, the same processing as that from S010 to S028 shown in FIG. 13of the aforesaid first reference example is carried out.

Subsequently, the processing proceeds to S3030 wherein the parametersdefining the permissible ranges of the floor reaction force momenthorizontal component about a desired ZMP for compliance control and afloor reaction force moment vertical component compensation amount aredetermined.

A value obtained by dividing the floor reaction force moment horizontalcomponent by the floor reaction force vertical component represents theamount of deviation of a ZMP (the central point of a floor reactionforce) from a desired ZMP. Alternatively, therefore, the permissiblerange of a floor reaction force moment horizontal component may bedivided by a floor reaction force vertical component to set theparameter of the ZMP permissible range converted into a floor reactionforce central point (the permissible range of a floor reaction forcecentral point).

Supplementally, based on the parameters of the permissible range of afloor reaction force moment horizontal component for compliance controland the permissible range of a floor reaction force moment verticalcomponent compensation amount that are determined in S3030, theinstantaneous values of the permissible ranges will be determined in asubroutine for determining a current time gait instantaneous value (thesubroutine of S3032), which will be discussed hereinafter, and thedetermined instantaneous values are used for the aforesaid processing inthe aforesaid compensating total floor reaction force moment horizontalcomponent distributor 110 and model manipulation floor reaction forcemoment vertical component determiner 111.

Regarding the floor reaction force moment horizontal componentpermissible range, a method for setting a floor reaction force momentpermissible range is described in detail in PCT applicationPCT/JP03/00435 by the present applicant. Hence, no further explanationwill be given in the present description.

The floor reaction force moment vertical component compensation amountmeans the compensation amount of a floor reaction force moment verticalcomponent that can be added to the floor reaction force moment generatedby a motion of a desired gait if the desired gait with a floor reactionforce moment vertical component limited to a floor reaction force momentvertical component permissible range (this is set in S3026) forgenerating a gait is supposedly generated in the gait generating device100. Hence, the permissible range of a floor reaction force momentvertical component compensation amount cannot be widely set unless thefloor reaction force moment vertical component permissible range forgenerating a gait is set to be sufficiently narrower than an actualfriction limit.

The permissible range of a floor reaction force moment verticalcomponent compensation amount may be set to be similar to the floorreaction force moment vertical component permissible range forgenerating a gait (refer to the aforesaid FIG. 41). For a floatingperiod of the running gait shown in the aforesaid FIG. 5, thepermissible range of a floor reaction force moment vertical componentcompensation amount for compliance control is set to a range having anupper limit value of zero and a lower limit value of zero.

Returning to FIG. 56, after the parameters defining the permissibleranges of the floor reaction force moment horizontal component about thedesired ZMP for compliance control and the permissible range of thefloor reaction force moment vertical component compensation amount aredetermined in S3030 as described above, or if the determination resultof S3016 is NO, then the processing proceeds to S3032 wherein a currenttime gait instantaneous value is determined. In S3032, a current timegait instantaneous value is determined such that a model manipulationfloor reaction force moment horizontal component determined according tothe above Equation d27a is generated about the desired ZMP. However, thecurrent time gait instantaneous value is determined such that the floorreaction force moment vertical component that balances with the currenttime gait (the resultant force of the inertial force and gravity of amotion of the current time gait balances with the vertical component ofan inertial force moment generated about the desired ZMP) does notexceed the permissible range of the floor reaction force moment verticalcomponent.

Specifically, gait instantaneous values are determined according to theflowcharts shown in FIG. 57 and FIG. 58. More specifically, in S3030,the processing from S3400 to S3411 of FIG. 57 is executed. Theprocessing from S3400 to S3411 is exactly the same as that from S1400 toS1411 of FIG. 45 mentioned above.

Then, the processing proceeds to S3412 wherein the instantaneous values(the current time values at the current time t) of the floor reactionforce moment horizontal component permissible range [Mxymin, Mxymax] anda floor reaction force moment vertical component compensation amountpermissible range [Mzcmin, Mzcmax] at the current time are determined onthe basis of the parameters of the floor reaction force momenthorizontal component permissible range for compliance control and thefloor reaction force moment vertical component compensation amountpermissible range that have been determined in S3030 of the aforesaidFIG. 56.

The determined floor reaction force moment horizontal componentpermissible range is sent to the compensating total floor reaction forcemoment horizontal component distributor 110 (refer to FIG. 53). Then,the current time value (the value at the current time t) of the modelmanipulation floor reaction force moment calculated according to theabove Equation d27a by the distributor 110 is supplied to the gaitgenerating device 100.

The determined permissible range of the floor reaction force momentvertical component compensation amount is supplied to the aforesaidmodel manipulation floor reaction force moment vertical componentdeterminer 111 (refer to FIG. 53). The current time value (the value atthe current time t) of the model manipulation floor reaction forcemoment vertical component calculated according to the aforesaid Equationd26b by the model manipulation floor reaction force moment verticalcomponent determiner 111 is supplied to the gait generating device 100.

Subsequently, the processing of the gait generating device 100 proceedsto S3414 wherein the body horizontal acceleration and the body postureinclination angular acceleration of the current time gait are determinedso that the model manipulation floor reaction force moment horizontalcomponent supplied from the compensating total floor reaction forcemoment distributor 110 is generated about the desired ZMP. However, thebody horizontal acceleration and the body posture angular acceleration(the body inclination angular acceleration) are determined such that thefloor reaction force horizontal component Fx does not exceed the floorreaction force horizontal component permissible range [Fxmin, Fxmax]determined in S3410.

In other words, the body horizontal acceleration and the body postureangular acceleration (the body inclination angular acceleration) of thecurrent time gait are determined so that the moment horizontal componentgenerated about the desired ZMP by the resultant force of the inertialforce and the gravity of a motion of the robot 1 will be the moment witha reversed sign of the model manipulation floor reaction force momenthorizontal component. However, the body horizontal acceleration and thebody posture inclination angular acceleration are determined such thatthe force with the reversed sign of the horizontal component of theinertial force does not exceed the floor reaction force horizontalcomponent permissible range [Fxmin, Fxmax].

In S3414, specifically, the body horizontal acceleration and the bodyposture angular acceleration are determined according to the flowchartshown in FIG. 58. In this flowchart, the same processing as that shownin the aforesaid FIG. 26 is performed except for S3104 and S3130. UnlikeS504 and S530 of FIG. 26, S3104 and S3130 determine a body horizontalacceleration (αtmp in S3104 or α in S3130) required for the aforesaidmodel manipulation floor reaction force moment horizontal component tobe generated about the desired ZMP of the current time (time k) in acase where the robot 1 is made to perform a motion of the bodytranslational mode, setting the angular acceleration of the bodyinclination mode to zero (to be more precise, balancing the angularacceleration of the body inclination mode with a reference body postureangular acceleration) from the last time's instant gait state (the gaitstate at time k−1) of the robot 1.

The rest of the processing is the same as the processing shown in FIG.26.

Thus, after the processing of S3414 is completed, the processingproceeds to S3416, wherein the same processing as that of S1414 of FIG.45 is carried out to determine the horizontal body position and the bodyposture inclination angle (specifically, the current time values thereofat the current time t).

Subsequently, the processing proceeds to S3418 wherein the sameprocessing as that of S1416 of FIG. 45 is carried out to determine anantiphase arm swing angle and angular velocity of the current time gait(specifically, the current time values thereof at the current time t).

Thus, the processing of S3032 of FIG. 56 is completed.

Then, the processing proceeds to S3034 of FIG. 56 to correct the currenttime gait instantaneous value generated in S3032 so as to additionallygenerate a model manipulation floor reaction force moment verticalcomponent about the desired ZMP.

Specifically, a correction amount βaadd of an antiphase arm swingangular acceleration corresponding to the model manipulation floorreaction force moment vertical component is determined according to thefollowing equation.Correction amount βaadd of antiphase arm swing angularacceleration=Model manipulation floor reaction force moment verticalcomponent/Equivalent inertial moment ΔMaz of antiphase arm swing motion

Further, βaadd is integrated during the period of a control cycle todetermine a correction amount of the antiphase arm swing angularvelocity, and then this is integrated to determine a correction amountof the antiphase arm swing angle.

Lastly, the correction amount of the antiphase arm swing angle and thecorrection amount of the antiphase arm swing angular velocity are addedto the antiphase arm swing angle and the angular velocity, respectively,of the current time gait generated in S3032, thereby correcting theantiphase arm swing angle and the angular velocity of the current timegait.

Subsequently, the processing proceeds to S3036 to add the control cycleΔt to time t, and goes back to S3014 to wait for a timer interrupt foreach control cycle.

In the second reference example, as described above, the processing forgenerating a desired gait is carried out in the gait generating device100, and instantaneous values of a desired body position/posture, adesired foot position/posture, a desired arm posture (including anantiphase arm swing angle), a desired ZMP, and a desired total floorreaction force are determined and output sequentially.

In this case, regarding the desired total floor reaction force, only acomponent thereof that is necessary for compliance control may beoutput. The desired ZMP is deliberately listed here as an outputalthough it is included in the desired total floor reaction force,because it is particularly important. The model manipulation floorreaction force moment horizontal component is not output as a desiredfloor reaction force to the composite-compliance operation determiner(the portion encircled by a dashed line in FIG. 53). More specifically,for the compliance control, the desired floor reaction force aimed at azero floor reaction force moment horizontal component about the desiredZMP (the desired floor reaction force satisfying the desired ZMP in theoriginal meaning) is output from the gait generating device 100.

The floor reaction force moment vertical component of the current timegait that has been corrected in S3034 is output as a desired value fromthe gait generating device 100 to the composite-compliance control unit.

As a first action of the second reference example, a motion of a desiredgait is generated such that a model manipulation floor reaction forcemoment horizontal component is produced about a desired ZMP, while thefloor reaction force of the actual robot 1 is controlled so as toprevent the model manipulation floor reaction force moment horizontalcomponent from being added. Hence, there is an imbalance (unbalance)between the motion of the desired gait and the floor reaction force bythe differential portion of the model manipulation floor reaction forcemoment horizontal component. This is equivalent to applying a floorreaction force moment horizontal component, which has a sign reversedfrom the sign of the model manipulation floor reaction force momenthorizontal component, to the actual robot 1 from the aspect of theeffect for converging a difference between the body posture inclinationangle of the actual robot 1 and the body posture inclination angle of adesired gait.

In other words, the actual robot 1 can be converged to a correcteddesired gait (the gait for converging the difference between the bodyposture inclination angle of the actual robot 1 and the body postureinclination angle of a desired gait) by determining a model manipulationfloor reaction force moment horizontal component as appropriate. Thismeans that the posture inclination of the actual robot 1 can bestabilized.

As a second action, the sum of a moment with a reversed sign of a modelmanipulation floor reaction force moment horizontal component and adesired floor reaction force moment horizontal component for compliancecontrol provides a total inclination restoring force (a force forrestoring an actual body posture inclination angle of the robot 1 to adesired body posture inclination angle). This means that the differencebetween a desired floor reaction force moment horizontal component forcompliance control and a model manipulation floor reaction force momenthorizontal component provides a total posture inclination restoringforce.

As a third action, a model manipulation floor reaction force momenthorizontal component can take any value, ignoring the range in which aZMP can exist, thus making it possible to generate an extremely highposture inclination restoring force.

As a fourth action, a body translational acceleration of the bodytranslational mode and a body posture inclination angular accelerationof the body inclination mode are determined such that a floor reactionforce horizontal component does not exceed a floor reaction forcehorizontal component permissible range. This makes it possible toprevent slippage of the robot 1 even in a period wherein a large floorreaction force horizontal component cannot be generated, such asimmediately before a supporting leg 2 leaves a floor or immediatelyafter it lands on a floor in a running gait, or when the robot 1 travelson a floor with a small frictional coefficient.

As a fifth action, the permissible range of a floor reaction forcehorizontal component is set to zero in the period wherein thetranslational force vertical component of a floor reaction force iszero, that is, in the period wherein neither of the legs is in contactwith the ground, so that a posture inclination is automatically restoredby depending upon the body inclination mode rather than depending uponthe body translational mode according to the algorithm of the secondreference example discussed above, thus performing the posturerestoration without depending upon a frictional force between a floorand a sole. Accordingly, even in this period (floating period), theposture inclination restoring action effectively works, unlike themethod wherein only the body translational mode is merely corrected.Incidentally, at this time, the gait is generated so that the floorreaction force horizontal component becomes zero; therefore, the totalcenter-of-gravity horizontal acceleration of the gait will be zero.

Further, as a sixth action, a model manipulation floor reaction forcemoment horizontal component is not output as a desired floor reactionforce for compliance control, as described above. More specifically,even when a gait is generated to produce a model manipulation floorreaction force moment horizontal component about a desired ZMP, adesired floor reaction force intended for setting a floor reaction forcemoment horizontal component about the desired ZMP to zero for compliancecontrol is supplied from the gait generating device 100. Thus, the floorreaction force control by the compliance control will not be interferedwith, allowing the floor reaction force control to be properly conductedby compliance control. To be more specific, it is possible to prevent orrestrain the occurrence of a problem, such as one in that an originallydesigned property of a foot 22 to contact the ground is deteriorated, orthe sole of a foot 22 incompletely contacts the ground.

As it will be discussed hereinafter, a desired floor reaction forcemoment horizontal component for compliance control about a desired ZMPwill be determined so as not to exceed a floor reaction force momenthorizontal component permissible range also in the first embodiment andafter.

Incidentally, the first to the sixth actions are the same arts disclosedin PCT/JP03/00435 previously proposed by the present applicant.

As a seventh action, a motion of a desired gait is generated such that amodel manipulation floor reaction force moment vertical component isadditionally produced about a desired ZMP, and the actual floor reactionforce of the actual robot 1 is controlled by composite-compliancecontrol to approximate to a desired value, the desired value beingobtained by adding the compensating total floor reaction force momentvertical component Mdmdz to a desired floor reaction force momentvertical component that balances with the desired gait to which a modelmanipulation floor reaction force moment vertical component has beenadded by the gait generating device 100. As Mdmdz increases, a modelmanipulation floor reaction force moment vertical component in theopposite direction from Mdmdz is added to the desired gait. Hence, evenwhen the actual floor reaction force is controlled to approximate it tothe aforesaid desired value by the composite-compliance control, thevertical component of the moment of the actual floor reaction force willnot be excessive. As a result, the effect can be implemented in whichthe difference between the body posture yaw angle and/or the bodyposture yaw angular velocity of the actual robot 1 and the body postureyaw angle and/or the yaw angular velocity of a desired gait is convergedto zero without causing the actual robot 1 to spin.

In other words, appropriately determining the model manipulation floorreaction force moment vertical component makes it possible to convergethe actual robot 1 to the corrected desired gait (the gait thatconverges the difference between the body posture yaw angle and/or thebody posture yaw angular velocity of the actual robot 1 and the bodyposture yaw angle and/or the yaw angular velocity of the desired gait tozero), while preventing the actual robot 1 from spinning. This meansthat the yaw rotation of the actual robot 1 can be stabilized.

As an eighth action, the compensating total floor reaction force momentvertical component Mdmdz provides a total yaw rotation restoring force.The compensating total floor reaction force moment vertical componentMdmdz is determined according to a feedback control law so as toapproximate a yaw angle error and/or a yaw angular velocity error tozero, thus making it possible to approximate the yaw angle error and/ora yaw angular velocity error to zero while ensuring control stability ofyaw angle errors.

As a ninth action, a model manipulation floor reaction force momentvertical component may take any value, ignoring the permissible range(or the frictional limit) of the floor reaction force moment verticalcomponent, so that an extremely high posture yaw rotation restoringforce can be generated.

As a tenth action, a final desired floor reaction force moment verticalcomponent is determined for compliance control such that it does notexceed the sum of the permissible range of a floor reaction force momentvertical component and the permissible range of a floor reaction forcemoment vertical component compensating amount. This makes it possible toproperly conduct the floor reaction force control based on thecompliance control and therefore makes it possible to prevent the robot1 from spinning even in a period wherein a large floor reaction forcemoment vertical component cannot be generated, such as immediatelybefore a supporting leg 2 leaves a floor or immediately after it landson a floor in a running gait, or when the robot 1 travels on a floorwith a small frictional coefficient. To be more specific, it is possibleto prevent or restrain the occurrence of a problem, such as one in thatan originally designed property of a foot 22 to contact the ground isdeteriorated, or the sole of a foot 22 incompletely comes in contactwith the ground.

As an eleventh action, the permissible range of a floor reaction forcevertical component and the permissible range of a floor reaction forcemoment vertical component compensation amount are set to zero in theperiod wherein the translational force vertical component of a floorreaction force is zero, that is, in the period wherein neither of thelegs is in contact with the ground, so that yaw rotation isautomatically restored by depending upon the antiphase arm swing moderather than depending on an actual floor reaction force moment verticalcomponent according to the algorithm of the second reference examplediscussed above, thus performing the restoration of yaw rotation withoutdepending upon a frictional force between a floor and a sole.Accordingly, even in this period (floating period), the yaw rotationrestoring action effectively works, unlike the method wherein only thedesired floor reaction force moment vertical component for compliancecontrol is merely corrected.

As a twelfth action, if a gait generated such that the moment horizontalcomponent produced about a desired ZMP is zero is referred to as anoriginal gait, and a gait generated such that the moment horizontalcomponent produced about a desired ZMP provides a model manipulationfloor reaction force moment horizontal component and a modelmanipulation floor reaction force moment vertical component isadditionally produced in the moment vertical component produced aboutthe desired ZMP, as in the aforesaid second reference example, isreferred to as a corrected gait, then the original gait and thecorrected gait are usually different gaits. The original gait is set sothat it gradually approximates to a normal gait, and therefore, thecorrected gait is usually a gait that does not gradually approximate toa normal gait.

However, immediately following the completion of the generation of acurrent time gait (corrected gait), the processing from S3020 to S3028is carried out again to determine new current time gait parameters suchthat a new current time gait having a terminal state of the correctedgait as its new initial state gradually approximates a normal gait newlyset. This makes it possible to continue generating gaits withcontinuously (long-range) guaranteed stability.

The twelfth action described above is substantially the same art as thatpreviously proposed in PCT/JP03/00435 by the present applicant. Inaddition thereto, however, the second reference example provides thefollowing action. The parameters related to an antiphase arm swing angletrajectory of a new current time gait are determined such that theantiphase arm swing angle trajectory of the new current time gait, whichuses the terminal state of the antiphase arm swing angle and angularvelocity corrected to restore the yaw angle rotation as the new initialstate, gradually approximates to the antiphase arm swing angletrajectory of the normal gait that is newly set. This makes it possibleto continue generating gaits with continuously (long-range) guaranteedstability of the antiphase arm swing angle.

In the second reference example, if the compensating total floorreaction force moment horizontal component Mdmdxy takes a value within afloor reaction force moment horizontal component permissible range, thenthe model manipulation floor reaction force moment horizontal componentwill be zero. Alternatively, however, the model manipulation floorreaction force moment horizontal component at this time may be setaccording to the state amounts of the dynamic model shown in FIG. 12(e.g., the center-of-gravity position of the robot on the dynamic model,and the position of the body mass point 3 m).

Further, in the second reference example, if the compensating totalfloor reaction force moment vertical component Mdmdz takes a valuewithin a floor reaction force moment vertical component compensatingamount permissible range, then the model manipulation floor reactionforce moment vertical component compensating amount will be zero.Alternatively, however, the model manipulation floor reaction forcemoment vertical component compensating amount at this time may be setaccording to the state amounts of the dynamic model shown in FIG. 12(e.g., the antiphase arm swing angle and angular velocity, the body yawangle, and angular velocity of the robot 1 on the dynamic model).

Referring now to FIG. 59 through FIG. 62, a third reference example ofthe present invention will be explained. In the explanation of the thirdreference example, the like constituent parts or like functional partsas those in the aforesaid first reference example or the aforesaidsecond reference example will be assigned like reference numerals asthose in the aforesaid first reference example or the aforesaid secondreference example, and the explanation thereof will be omitted. In thethird reference example, the aspects explained with reference to FIG. 1to FIG. 3 and FIG. 5 to FIG. 12 are identical to those in the aforesaidfirst reference example.

An outline of the aspects of the third reference example that aredifferent from those of the aforesaid first reference example and thesecond reference example will be explained. An original gait and acorrected gait are generated at the same time. The corrected gait isobtained by correcting an original gait to stabilize a body posture (aninclination angle and a yaw angle) of the actual robot 1. Further, inthe corrected gait, if the corrected gait still has an allowance (anallowance in a floor reaction force moment that can be generated about adesired ZMP) after generating a floor reaction force moment required forrestoring a posture by compliance control, then it is determined toconverge to the original gait as much as possible, using the allowance.

A block diagram showing a functional construction of a control unit 60in the third reference example is shown in FIG. 59. In the thirdreference example, a compensating total floor reaction force momenthorizontal component Mdmdxy determined by a posture inclinationstabilization control calculator 112 is supplied to a gait generatingdevice 100.

A compensating total floor reaction force moment vertical componentMdmdz determined by a yaw stabilization control calculator 113 is alsosupplied to the gait generating device 100.

Further, a compensating total floor reaction force moment distributor120 that determines a model manipulation floor reaction force moment (ahorizontal component and a vertical component) and a desired floorreaction force moment (a horizontal component and a vertical component)for compliance control on the basis of the Mdmdxy and Mdmdz isincorporated in the gait generating device 100. The desired floorreaction force moment for compliance control is output from the gaitgenerating device 100 to a composite-compliance operation determiner104. The compensating total floor reaction force moment distributor 120in the gait generating device 100 performs more complicated processingthan the compensating total floor reaction force moment horizontalcomponent distributor 110 and the model manipulation floor reactionforce moment vertical component determiner model 111 of the aforesaidsecond reference example. The functional construction of the controlunit 60 except for the above is identical to that in the secondreference example.

FIG. 60 shows the flowchart of the main routine processing of the gaitgenerating device 100 in the third reference example.

In this FIG. 60, the same processing as that from S010 to S028 of themain flowchart (FIG. 13) of the aforesaid first reference example iscarried out from S2010 to S2028. In the initialization in S800 of theflowchart of FIG. 43 that is the subroutine of S028 (S2028 in the thirdreference example), the initial state of a current time gait is obtainedby converting the terminal state of the last time's corrected gait (thefinal gait that the gait generating device 100 outputs) into a currenttime's gait supporting leg coordinate system. The terminal state of theoriginal gait determined in S2032, which will be discussed hereinafter,is not used in S800 of the subroutine of S2028.

Subsequently, the processing proceeds to S2030 wherein the floorreaction force moment horizontal component permissible range forcompliance control is determined. The method for determining the floorreaction force moment horizontal component permissible range is the sameas that in S3032 (FIG. 56) of the second reference example.

After completing the processing of S2030, or if the determination resultof S2016 is NO, the program proceeds to S2032 wherein an instantaneousvalue of the original gait (the current time value at time t) isdetermined. The original gait is a gait that is generated so that thefloor reaction force moment horizontal component about a desired ZMP iszero.

This original gait is generated according to an algorithm obtained bypartly changing the subroutine processing of S3032 of FIG. 56 in theaforesaid second reference example. More specifically, in S3104 andS3130 of FIG. 58, which is the subroutine processing in S3032(precisely, the subroutine processing of S3414 of FIG. 57, which is thesubroutine processing of S3032), a body horizontal acceleration atmp isdetermined, the model manipulation floor reaction force momenthorizontal component being zero (the desired floor reaction force momenthorizontal component about a desired ZMP being zero). The processingexcept for this may be the same as the processing of S3032 of FIG. 56.

Subsequently, the processing proceeds to S2034 wherein the instantaneousvalue of a corrected gait is determined. The corrected gait is thedesired gait finally output from the gait generating device 100.

The processing of S2034 is implemented by the subroutine processingillustrated by the flowchart of FIG. 61. This will be explained indetail below.

First, from S2100 to S2111, the same processing as that of S3400 toS3411 of FIG. 57 explained in the second reference example is carriedout.

Subsequently, the processing proceeds to S2112 wherein the floorreaction force moment horizontal component permissible range [Mxymin,Mxymax] at the current time is determined on the basis of gaitparameters. This is carried out in the same manner as that fordetermining the floor reaction force moment horizontal componentpermissible range [Mxymin, Mxymax] in S3412 of FIG. 57.

Subsequently, the processing proceeds to S2114 wherein a modelmanipulation floor reaction force moment (a horizontal component and avertical component), a desired floor reaction force moment forcompliance control, a body horizontal acceleration, a body postureinclination angular acceleration, and an antiphase arm swing angularacceleration are determined such that the conditions of a floor reactionforce moment horizontal component permissible range, a floor reactionforce moment vertical component permissible range, and a floor reactionforce horizontal component permissible range are satisfied.

The details of S2114 will be explained below in conjunction with theflowchart of FIG. 62 that illustrates the processing.

First, in S2200, the difference in horizontal body position betweenmodels, which is the difference between the horizontal body position ofthe corrected gait and the horizontal body position of the originalgait, is determined. At this point, the current time value (the value attime t) of the horizontal body position of the corrected gait has notyet been determined. In S2200, therefore, the last time value (the lastvalue determined in the control cycle at time t−Δt) of the horizontalbody position of the corrected gait, and the last time value (the valuedetermined in S2032 in the control cycle at time t−Δt) or a current timevalue (the value determined in S2032 in the control cycle at time t) ofthe horizontal body position of the original gait are used to calculatethe difference in horizontal body position between models.

Subsequently, the processing proceeds to S2202 wherein the difference inbody posture inclination angle between models, which is the differencebetween the body posture inclination angle of the corrected gait and thebody posture inclination angle of the original gait, is determined. Inthis S2202, the last time value of the body posture inclination angle ofthe corrected gait and the last time value or the current time value ofthe body posture inclination angle of the original gait are used todetermine the difference in body posture inclination angle betweenmodels, as in the case of the processing for calculating the differencein horizontal body position between models in S2200.

Subsequently, the processing proceeds to S2204 wherein the difference inantiphase arm swing angle between models, which is the differencebetween the antiphase arm swing angle of the corrected gait and theantiphase arm swing angle of the original gait, is determined. In thisS2204, the last time value of the antiphase arm swing angle of thecorrected gait and the last time value or the current time value of theantiphase arm swing angle of the original gait are used to determine thedifference in antiphase arm swing angle between models, as in the caseof the processing for calculating the difference in horizontal bodyposition between models in S2200.

Subsequently, the processing proceeds to S2206 wherein, based on thedifference in horizontal body position between models, a required valueMpfdmd of model horizontal body position stabilization floor reactionforce moment that is necessary for converging the difference to zero isdetermined. If the floor reaction force moment for generating a bodyhorizontal acceleration of the body translational mode of the correctedgait is merely balanced with the floor reaction force moment forgenerating a body horizontal acceleration of the body translational modeof the original gait, then the difference in horizontal body positionbetween models diverges. The required value Mpfdmd of model horizontalbody position stabilization floor reaction force moment has a meaning asa moment resulting from subtracting the floor reaction force moment forgenerating the body horizontal acceleration of the body translationalmode of the original gait from the floor reaction force moment generatedwhen a motion is made to return the horizontal body position of thecorrected gait to the horizontal body position of the original gait bythe aforesaid body translational mode.

Specifically, the required value Mpfdmd of model horizontal bodyposition stabilization floor reaction force moment is determinedaccording to, for example, the feedback control law of the equationgiven below. In this example, the PD control law is used as the feedbackcontrol law; alternatively, however, other feedback control laws, suchas PID, may be applied.Mpfdmd=Kmp*Difference in horizontal body position betweenmodels+Kmpv*Temporal differential value of the difference in horizontalbody position between models  Equation d28

where Kmp and Kmpv denote feedback gains (a proportional gain and adifferential gain)

Subsequently, the processing proceeds to S2208 wherein, based on thedifference in body posture inclination angle between models, a requiredvalue Mrfdmd of the floor reaction force moment for stabilizing a modelbody posture inclination angle that is necessary for converging thedifference to zero is determined. If the floor reaction force moment forgenerating a body posture inclination angular acceleration of the bodyinclination mode of the corrected gait is merely balanced with the floorreaction force moment for generating a body posture inclination angularacceleration of the body inclination mode of the original gait, then thedifference in body posture inclination angle between models does notconverge to zero. The required value Mrfdmd of the floor reaction forcemoment for stabilizing a model body posture inclination angle has ameaning as a moment resulting from subtracting the floor reaction forcemoment for generating the body posture inclination angle acceleration ofthe body inclination mode of the original gait from the floor reactionforce moment generated when a motion is made to return the body postureinclination angle of the corrected gait to the body posture inclinationangle of the original gait by the aforesaid body inclination mode.

Specifically, the required value Mrfdmd of the floor reaction forcemoment for stabilizing a model body posture inclination angle isdetermined according to, for example, the feedback control law of theequation given below. In this example, the PD control law is used as thefeedback control law; alternatively, however, other feedback controllaws, such as PID, may be applied.Mrfdmd=Kmr*Difference in body posture inclination angle betweenmodels+Kmrv*Temporal differential value of the difference in bodyposture inclination angle between models  Equation d29

where Kmr and Kmrv denote feedback gains (a proportional gain and adifferential gain)

Subsequently, the processing proceeds to S2210 wherein, based on thedifference in antiphase arm swing angle between models, a required valueMafdmd of the floor reaction force moment for stabilizing a modelantiphase arm swing angle that is necessary for converging thedifference to zero is determined. If the floor reaction force moment forgenerating an antiphase arm swing angular acceleration of the antiphasearm swing mode of the corrected gait is merely balanced with the floorreaction force moment for generating an antiphase arm swing angularacceleration of the antiphase arm swing mode of the original gait, thenthe antiphase arm swing angle between models does not converge to zero.The required value Mafdmd of the floor reaction force moment forstabilizing a model antiphase arm swing angle has a meaning as a momentresulting from subtracting the floor reaction force moment forgenerating the antiphase arm swing angular acceleration of the antiphasearm swing mode of the original gait from the floor reaction force momentgenerated when a motion is made to return the antiphase arm swing angleof the corrected gait to the antiphase arm swing angle of the originalgait by an antiphase arm swing mode.

Specifically, the required value Mafdmd of the floor reaction forcemoment for stabilizing a model antiphase arm swing angle is determinedaccording to, for example, the feedback control law of the equationgiven below. In this example, the PD control law is used as the feedbackcontrol law; alternatively, however, other feedback control laws, suchas PID, may be applied.Mafdmd=Ka*Difference in antiphase arm swing angle betweenmodels+Kav*Temporal differential value of the difference in antiphasearm swing angle between models  Equation d29b

where Kar and Kav denote feedback gains (a proportional gain and adifferential gain).

Incidentally, the moment obtained by subtracting the floor reactionforce moment horizontal component for generating a body horizontalacceleration of the body translational mode of an original gait from thefloor reaction force moment horizontal component generated by the bodytranslational mode of a finally determined corrected gait is called afloor reaction force moment for stabilizing a model horizontal bodyposition. Further, the moment obtained by subtracting the floor reactionforce moment horizontal component for generating a body postureinclination angular acceleration of the body inclination motion mode ofan original gait from the floor reaction force moment horizontalcomponent generated by the body inclination motion mode of a finallydetermined corrected gait is called a floor reaction force moment forstabilizing a model body posture inclination angle. Further, the momentobtained by subtracting the floor reaction force moment verticalcomponent for generating an antiphase arm swing angular acceleration ofthe antiphase arm swing mode of an original gait from the floor reactionforce moment vertical component generated by the antiphase arm swingmode of a finally determined corrected gait is called a floor reactionforce moment for stabilizing a model antiphase arm swing angle.

Meanwhile, linearity approximately holds between a perturbative motionand a perturbation floor reaction force. In other words, the floorreaction force of a motion obtained by adding a different perturbativemotion to the motion of an original gait substantially agrees with thefloor reaction force of the original gait to which the perturbationfloor reaction force generated by each perturbative motion has beenadded. In the antiphase arm swing mode, a floor reaction force momenthorizontal component remains unchanged. Hence, the following equationapproximately holds.Model manipulation floor reaction force moment horizontalcomponent=Model horizontal body position stabilizing floor reactionforce moment+Model body posture inclination angle stabilizing floorreaction force moment  Equation d30

Taking into account that the Equation d30 approximately holds and afloor reaction force moment vertical component changes in proportion toan antiphase arm swing angular acceleration, if a model horizontal bodyposition stabilizing floor reaction force moment is determined so thatit agrees with or approximates as much as possible to the required valueMpfdmd of model horizontal body position stabilizing floor reactionforce moment, and a model body posture inclination angle stabilizingfloor reaction force moment is determined so that it agrees with orapproximates as much as possible to the required value Mrfdmd of a modelbody posture inclination angle stabilizing floor reaction force moment,and a model antiphase arm swing angle stabilizing floor reaction forcemoment is determined so that it agrees with or approximates as much aspossible to the required value Mafdmd of a model antiphase arm swingangle stabilizing floor reaction force moment, then a model manipulationfloor reaction force moment appropriate for a corrected gait can begenerated to converge the body horizontal acceleration and the bodyposture inclination angular acceleration of a corrected gait to possibleranges for the body horizontal acceleration and the body postureinclination angular acceleration, respectively, of an original gait,while satisfying the restoring conditions shown below.

Thus, after S2210, the processing proceeds to S2212 wherein a modelhorizontal body position stabilizing floor reaction force moment (thefloor reaction force moment of the body translational mode), a modelbody posture inclination angle stabilizing floor reaction force moment(the floor reaction force moment of the body inclination mode), and amodel antiphase arm swing angle stabilizing floor reaction force momentare determined to satisfy the conditions shown below (these are called“restoring conditions”) as much as possible. Furthermore, the bodyhorizontal acceleration, the body posture inclination angularacceleration, and the antiphase arm swing angular acceleration of acorrected gait are determined to satisfy the definitions of the modelhorizontal body position stabilizing floor reaction force moment, themodel body posture inclination angle stabilizing floor reaction forcemoment, and the model antiphase arm swing angle stabilizing floorreaction force moment described above. Regarding the restoringconditions shown below, conditions with smaller numbers have higherpriorities. In other words, if conflicting, incompatible conditions areencountered, then priority goes to a condition with a smaller numberwill be satisfied (met). However, restoring conditions of 1,2 and 3 mustalways be satisfied (met).

Restoring condition 1) The sum of the compensating total floor reactionforce moment horizontal component Mdmdxy and a model manipulation floorreaction force moment (this corresponds to a desired floor reactionforce moment horizontal component for compliance control if the aboveEquation d27b holds) does not exceed a floor reaction force momenthorizontal component permissible range.

Restoring condition 2) The floor reaction force horizontal component ofa corrected gait does not exceed a floor reaction force horizontalcomponent permissible range.

Restoring condition 3) The sum of the floor reaction force momentvertical component of a corrected gait and a compensating total floorreaction force moment vertical component Mdmdz (this corresponds to adesired floor reaction force moment vertical component for compliancecontrol) does not exceed a floor reaction force moment verticalcomponent permissible range.

Restoring condition 4) A model body posture inclination anglestabilization floor reaction force moment agrees with or is close asmuch as possible to a required model body posture inclination anglestabilization floor reaction force moment value Mrfdmd. This conditionis the condition for the body posture inclination angle of a correctedgait to converge to the body posture inclination angle of an originalgait (originally planned gait).

Restoring condition 5) A model horizontal body position stabilizationfloor reaction force moment agrees with or is close as much as possibleto a required value Mpfdmd of model horizontal body positionstabilization floor reaction force moment. This condition is thecondition for a horizontal body position of a corrected gait to convergeto the horizontal body position of an original gait (originally plannedgait).

Restoring condition 6) A model antiphase arm swing angle stabilizationfloor reaction force moment agrees with or is close as much as possibleto a required value Mafdmd of model antiphase arm swing anglestabilization floor reaction force moment. This condition is thecondition for the antiphase arm swing angle of a corrected gait toconverge to the antiphase arm swing angle of an original gait(originally planned gait).

Restoring condition 7) A model body posture inclination anglestabilization floor reaction force moment, a model horizontal bodyposition stabilization floor reaction force moment, and a modelantiphase arm swing angle stabilization floor reaction force moment areall continuous.

The processing of S2212 for determining a body horizontal acceleration,a body posture inclination angle acceleration, an antiphase arm swingangular acceleration, etc. that satisfy the restoring conditions 1through 6 described above is carried out, for example, as follows.

First, in order to satisfy the aforesaid restoring conditions 1, 2, 4,and 5, a model horizontal body position stabilization floor reactionforce moment and a model body posture inclination angle stabilizationfloor reaction force moment are determined, and further a bodyhorizontal acceleration and a body posture inclination angularacceleration are determined. This processing is discussed in detail inthe art of PCT/JP03/00435 previously proposed by the present applicant,so that the explanation thereof will be omitted here.

Subsequently, the model antiphase arm swing stabilization floor reactionforce moment is determined to satisfy the aforesaid restoring conditions3 and 6, and further, the antiphase arm swing angular acceleration isdetermined.

Specifically, a floor reaction force moment vertical component about adesired ZMP that is generated if a motion is provisionally implementedat the body horizontal acceleration and the body posture inclinationangular acceleration determined as described above and at an antiphasearm swing angular acceleration βaorg of an original gait (dynamicallybalancing the motion) is determined. Hereinafter, this will be referredto as a floor reaction force moment vertical component withoutcorrection.

Subsequently, a sum Msumz of a floor reaction force moment verticalcomponent without correction, the required value Mafdmd of modelantiphase arm swing angle stabilization floor reaction force moment, anda compensating total floor reaction force moment vertical componentMdmdz is determined according to the following equation.Msumz=Floor reaction force moment vertical component without correction+Mafdmd+Mdmdz

Subsequently, a model antiphase arm swing stabilization floor reactionforce moment is determined according to the following equation.If Msumz>Upper limit value of a floor reaction force moment verticalcomponent permissible range, then Model antiphase arm swingstabilization floor reaction force moment=−Mdmdz −Floor reaction forcemoment vertical component without correction +Upper limit value of thefloor reaction force moment vertical component permissible range.If Msumz<Lower limit value of a floor reaction force moment verticalcomponent permissible range, then Model antiphase arm swingstabilization floor reaction force moment=−Mdmdz −Floor reaction forcemoment vertical component without correction +Lower limit value of thefloor reaction force moment vertical component permissible range.If a lower limit value of a floor reaction force moment verticalcomponent permissible range≦Msumz and Msumz≦Upper limit value of thefloor reaction force moment vertical component permissible range, thenModel antiphase arm swing stabilization floor reaction force moment=Required value Mafdmd of model antiphase arm swing angle stabilizationfloor reaction force moment  Equation d26c

Subsequently, the antiphase arm swing angular acceleration of acorrected gait is determined according to the following equation.Antiphase arm swing angular acceleration of corrected gait =Originalgait antiphase arm swing angular acceleration βaorg +Model antiphase armswing stabilization floor reaction force moment /Equivalent inertialmoment of arm swing motion ΔMaz

The floor reaction force moment vertical component of the corrected gaitis the sum of the antiphase arm swing angular acceleration of theoriginal gait βaorg and the model antiphase arm swing stabilizationfloor reaction force moment. Therefore, the aforesaid three restoringconditions are satisfied by determining the model antiphase arm swingstabilization floor reaction force moment according to the aboveequations.

After carrying out the processing of S2212 as described above, theprogram processing proceeds to S2214 wherein a model manipulation floorreaction force moment horizontal component is determined according tothe above equation d30. More specifically, the sum of the modelhorizontal body position stabilization floor reaction force moment andthe model body posture inclination angle stabilization floor reactionforce moment that has been obtained in S2208 is determined as the modelmanipulation floor reaction force moment horizontal component.Alternatively, the floor reaction force moment about a desired ZMP maybe directly calculated on the basis of a current time instantaneousvalue of the motion of a finally determined corrected gait, and thecalculation result may be defined as the model manipulation floorreaction force moment.

Subsequently, the processing proceeds to S2216 wherein a desired floorreaction force moment horizontal component for compliance control isdetermined according to the above equation d27b. More specifically, thesum of the compensating total floor reaction force moment horizontalcomponent Mdmdxy and the model manipulation floor reaction force momenthorizontal component obtained in S2214 is determined as the desiredfloor reaction force moment horizontal component for compliance control.

Subsequently, the processing proceeds to S2218 wherein a desired floorreaction force moment vertical component for compliance control isdetermined according to the equation shown in the figure. The floorreaction force moment vertical component that balances with thecorrected gait in the equation shown in the figure (dynamically balanceswith the motion of the corrected gait) is the sum of a floor reactionforce moment vertical component without correction and a model antiphasearm swing stabilization floor reaction force moment. Alternatively,however, the floor reaction force moment vertical component about adesired ZMP may be directly calculated on the basis of a current timeinstantaneous value of the motion of a finally determined correctedgait.

Thus, the processing of S2114 of FIG. 61 is finished, and then theprocessing proceeds to S2116. The processing of this S2116 is the sameas that of S3416 of FIG. 57 in the aforesaid second reference example;the current time value of a horizontal body position is determined bythe second order integration of a body horizontal acceleration and thecurrent value of a body posture inclination angle is determined by thesecond order integration of a body posture inclination angleacceleration.

Subsequently, the processing proceeds to S2118. The processing in thisS2118 is the same as that of S3418 of FIG. 57 in the aforesaid secondreference example; the current time value of an antiphase arm swingangle is determined by the second order integration of an antiphase armswing angular acceleration.

Subsequently, the processing proceeds to S2036 of FIG. 60 to add acontrol cycle Δt to time t, and then returns to S2014 wherein it waitsfor a timer interrupt for each control cycle.

Supplementally, to determine a gait instantaneous value on the basis ofa dynamic model in the third reference example, the state amount of thedynamic model (or the last time's or the last but one time's gaitinstantaneous values) are also necessary, so that two dynamic models,for generating a corrected gait and for generating an original gait arenecessary. In the third reference example, the dynamic models are thedynamic model shown in FIG. 12.

In the third reference example, as discussed above, an original gait anda corrected gait are generated in parallel, and the corrected gait iscorrected to stabilize the posture (the inclination angle and the yawangle) of the actual robot 1. If there is still an allowance even aftera floor reaction force moment (a horizontal component and a verticalcomponent) required for posture restoration by compliance control isgenerated, then the allowance is used for convergence to an originalgait as much as possible. Therefore, in addition to the actions andadvantages of the aforesaid second reference example, a gait close to aninitially set original gait, that is, a gait approximated to the gaitinitially required, can be generated. Hence, if a preset travel path isprovided, then it will be possible to prevent significant deviation fromthe travel path. Moreover, a priority has been given to the convergenceof the body posture inclination angle of the corrected gait to the bodyposture inclination angle of an original gait (the initially determinedgait) rather than to the convergence of the horizontal body position ofthe corrected gait to the horizontal body position of the original gait(the initially determined gait)(the motion of the body translationalmode has been adjusted as much as possible within the range in which afloor reaction force horizontal component permissible range issatisfied), thus making it possible to restrain a significant change inthe body posture inclination angle.

Referring now to FIG. 63 through FIG. 71, a first embodiment of thepresent invention will be explained. In the explanation of the presentembodiment, the like constituent parts or like functional parts as thosein any one of the aforesaid first to third reference examples will beassigned like reference numerals as those in the aforesaid first tothird reference examples, and detailed explanation thereof will beomitted.

Referring to FIG. 63, in the present embodiment, the functionalconstruction of a control unit 60 is the same as that of the thirdreference example, that is, the same as that shown in FIG. 59 mentionedabove except that the yaw stabilization control calculator 113 has beendeleted therefrom and the compensating total floor reaction force momentvertical component Mdmdz is not supplied to the gait generating device100. And, in the present embodiment, the algorithm for generating gaitsexecuted by a gait generating device 100 is different from that of theaforesaid third reference example. And the processing of units otherthan the gait generating device 100 is identical to that of theaforesaid third reference example. Supplementally, the compensatingtotal floor reaction force moment vertical component Mdmdz may besupplied to the composite-compliance operation determiner 104, as in thefirst reference example.

FIG. 64 is a block diagram showing an outline of the processing of thegait generating device 100 in the present embodiment. Referring to thisFIG. 64, an outline of the processing of the gait generating device 100will be explained below. Incidentally, the outline of the processing tobe explained below in conjunction with FIG. 64 will apply also to secondto fourth embodiments to be discussed hereinafter. In the presentembodiment and the second to the fourth embodiments to be discussedhereinafter, the dynamic model of the aforesaid FIG. 12 will be referredto as a simplified model.

As illustrated, the gait generating device 100 is equipped with a gaitparameter determiner 100 a. The gait parameter determiner 100 adetermines a value of a parameter of a desired gait (the parameterdefining the desired gait) or a time series table thereof. Thiscorresponds to the processing of S3520 through S3530 of the flowchart ofFIG. 66 to be discussed hereinafter.

Although details will be given hereinafter, parameters determined by thegait parameter determiner 100 a includes the parameters that define adesired foot position/posture trajectory, a desired arm posturetrajectory, a reference body posture trajectory, a desired ZMPtrajectory, a desired floor reaction force vertical componenttrajectory, etc. in addition to a parameter that defines a floorreaction force horizontal component permissible range, a parameter thatdefines a ZMP permissible range (or a floor reaction force momenthorizontal component permissible range), and a parameter that defines afloor reaction force moment vertical component permissible range. Inthis case, the floor reaction force horizontal component permissiblerange and the floor reaction force moment vertical component permissiblerange to be set in the present embodiment come in two types, one forsimplified model gaits set by the processing of S3526 to be describedlater and the other for correcting gait to be set in S3530. Meanwhile, aZMP permissible range (or a floor reaction force moment horizontalcomponent permissible range) comes in only one type for full modelcorrection (for correcting a gait) set by the processing of S3530. Inthe present embodiment, S3530 sets a parameter for defining the ZMPpermissible range. This is equivalent to setting a parameter thatdefines a floor reaction force moment horizontal component permissiblerange. This is because the value obtained by dividing a floor reactionforce moment horizontal component by a desired floor reaction forcevertical component represents the amount of the deviation of a ZMP(floor reaction force central point) from a desired ZMP, as has beenexplained in relation to S3030 of FIG. 56 in the aforesaid secondreference example.

Here, the ZMP permissible range to be set in the present embodiment willbe set as shown in FIG. 65. The details have been given inPCT/JP03/00435, so that further explanation will be omitted.

A gait parameter determined by the gait parameter determiner 100 a isinput to a desired instantaneous value generator 100 b. Based on theinput gait parameter, the desired instantaneous value generator 100 bsequentially calculates (generates) the instantaneous values of desiredfoot position/posture, a desired ZMP, a desired floor reaction forcevertical component, a desired arm posture, a desired totalcenter-of-gravity vertical position, a desired vertical body position, afloor reaction force horizontal component permissible range, a ZMPpermissible range, a reference body posture angle, and a referenceantiphase arm swing angle at current time t (FIG. 64 describes only apart of desired instantaneous values). The processing of the desiredinstantaneous value generator 100 b corresponds to the processing ofS3400 through S3412 of FIG. 57 carried out in the processing of S3532 ofthe flowchart of FIG. 66 to be discussed hereinafter and the processingof S3534 of FIG. 66. In the present embodiment, of the desiredinstantaneous values calculated by the desired instantaneous valuegenerator 100 b, some instantaneous values (specifically, theinstantaneous value of a desired vertical body position) are provisionalvalues, which will be corrected later. The instantaneous values of thefloor reaction force horizontal component permissible range and thefloor reaction force moment vertical component permissible rangecalculated by the desired instantaneous value generator 100 b come inthe instantaneous values for simplified model gaits and theinstantaneous values for correcting gaits.

Desired instantaneous values (some are provisional instantaneous values)calculated (generated) by the desired instantaneous value generator 100b are input to a full-model correction unit 100 c. Also input to thefull-model correction unit 100 c is the compensating total floorreaction force moment horizontal component Mdmdxy determined by theaforesaid posture inclination stabilization control calculator 112(refer to FIG. 63). The full-model correction unit 100 c is providedwith a simplified model 100 c 1 and a full model 100 c 2 as dynamicmodels. Based on the simplified model 100 c 1, the full-model correctionunit 100 c determines the provisional instantaneous values or the likeof a desired body position/posture and an antiphase arm swing angle fromthe input values, and further corrects the provisional instantaneousvalues or the like of the determined body position/posture and theantiphase arm swing angle by using the full model 100 c 2.

As an alternative construction, the simplified model 100 c 1 may not beincluded in the full-model correction unit 100 c. The full model 100 cincludes either an inverse full model (an inverse dynamic full model) ora forward full model (a forward dynamic full model), as will bediscussed hereinafter.

The full-model correction unit 100 c basically executes the processingof B to satisfy the following conditions A1 through A4. Specifically,the full-model correction unit 100 c carries out B) given below tosatisfy the following conditions:

-   A1) the value obtained by adding the compensating total floor    reaction force moment horizontal component Mdmdxy to the floor    reaction force moment balancing the motion of a corrected gait    generated by the full-model correction unit 100 c agrees with the    floor reaction force moment for compliance control that is output    from the full-model correction unit 100 c,-   A2) a true ZMP (the ZMP that satisfies the original definition    corrected by generating a desired floor reaction force moment for    compliance control about a desired ZMP) lies in a ZMP permissible    range (a permissible range that allows a sufficient stability    allowance to be maintained),-   A3) a floor reaction force horizontal component lies in the floor    reaction force horizontal component permissible range for correcting    a gait, and-   A4) a desired floor reaction force moment vertical component for    compliance control to be generated about a desired ZMP lies in a    floor reaction force moment vertical component permissible range.-   B) The full-model correction unit 100 c corrects the body    position/posture of a simplified model gait determined using the    simplified model, and outputs the desired floor reaction force    moment for compliance control about the is desired ZMP.

The above condition A2 is equivalent to restricting a floor reactionforce moment generated about the desired ZMP to a floor reaction forcemoment horizontal component permissible range that corresponds to a ZMPpermissible range.

Here, the aforesaid simplified model 100 c 1 and the aforesaid fullmodel 100 c 2 will be explained. The simplified model 100 c 1 is adynamic model with an emphasis placed on a reduced volume of calculationor the ease of behavior analysis rather than dynamic accuracy, and mayignore some dynamic elements (e.g., ignore a change in the angularmomentum about the center of gravity) or may have contradiction (lack inpreciseness). In the present embodiment, the dynamic model of FIG. 12explained in the aforesaid first reference example (the dynamic modeldescribed in conjunction with the above Equations 01 to 05) is used asthe simplified model 100 c 1.

The full model 100 c 2 means a robot dynamic model that is differentfrom the simplified model 100 c 1. This is desirably a robot dynamicmodel having a higher approximation accuracy than that of the simplifiedmodel 100 c 1. This will be explained in conjunction with theillustrated example. As previously described, in the present embodiment,the dynamic model shown in the above FIG. 12 is used as the simplifiedmodel 100 c 1; therefore, a dynamic model having a higher approximationaccuracy than that, such as the robot dynamic model like the multi-masspoint model (the model having a mass point for each link of the robot 1)shown in, for example, FIG. 49 mentioned above, is desirably used as afull model 100 c 2. In this case, the full model 100 c 2 may be suchthat an inertial moment is set about a mass point.

However, the simplified model 100 c 1 and the full model 100 c 2 do nothave to necessarily have different model approximation accuracy. Thesimplified model 100 c 1 and the full model 100 c 2 may share the samedynamic equations and have different floor reaction force horizontalcomponent permissible ranges and/or floor reaction force moment verticalcomponent permissible ranges, that is, they may be different only in thepermissible range for simplified model gaits and the permissible rangefor gait correction (for full model correction). For instance, the floorreaction force horizontal component permissible range and the floorreaction force moment vertical component permissible range forgenerating gaits by the simplified model 100 c 1 may be merely set to bewide (may even exceed a frictional limit), while setting narrow rangesfor the floor reaction force horizontal component permissible range andthe floor reaction force moment vertical component permissible rangeapplied for correcting gaits using the full model 100 c 2, therebymaking it difficult for the robot 1 to slip or spin.

In the present description, the model used to calculate (output) bodyposition/posture and an antiphase arm swing angle on the basis of (byentering) desired foot position/posture, a desired floor reaction force(particularly, a desired ZMP and a desired floor reaction force verticalcomponent) is called the “forward dynamic model.” The model used tocalculate (output) a floor reaction force (especially a desired ZMP or afloor reaction force moment (a horizontal component and a verticalcomponent) and a floor reaction force horizontal component) on the basisof (by entering) desired foot position/posture, a desired body posture,a desired body position and an antiphase arm swing angle is called the“inverse dynamic model.” An input of the forward dynamic model includesat least a desired floor reaction force, while an input of the inversedynamic model includes at least a desired motion.

The full model 100 c 2 provided in the full-model correction unit 100 cis equipped with an inverse dynamic full model (frequently referred tosimply as “inverse full model”) or a forward dynamic full model(frequently referred to simply as “forward full model”). In general, thevolume of calculation of a forward dynamic model tends to be greaterthan that of an inverse dynamic model.

The above is the outline of the processing in the gait generating device100 in the present embodiment (the first embodiment).

The processing of the gait generating device 100 in the presentembodiment will now be explained in detail. The gait generating device100 in the present embodiment carries out the processing shown in theflowchart of FIG. 66 to generate gaits.

First, the same processing as the processing from S3010 to S3028 of FIG.56 explained in the aforesaid second reference example is carried out inS3510 to S3528. The floor reaction force horizontal componentpermissible range for a current time gait determined in S608 of FIG. 39,which is the subroutine of S3026, and the floor reaction force momentvertical component permissible range determined in S610 require lessstrict consideration given to the limit of a frictional force than inthe case of the aforementioned first reference example, the secondreference example, and the third reference example, and may be set toranges that exceed the limit of the frictional force. This is becausethe floor reaction force horizontal component and the floor reactionforce moment vertical component will be eventually restricted by a floorreaction force horizontal component permissible range and a floorreaction force moment vertical component permissible range for fullmodel correction by the full model correction, which will be discussedhereinafter.

Subsequently, the processing proceeds to S3530 wherein the parametersdefining the floor reaction force horizontal component permissiblerange, the floor reaction force moment vertical component permissiblerange, and the ZMP permissible range (floor reaction force central pointpermissible range) for full model correction (for gait correction) aredetermined. In this case, the floor reaction force horizontal componentpermissible range for full model correction is set to have a pattern, asshown in the aforesaid FIG. 30, on the basis of a floor reaction forcevertical component trajectory and the above Equation 12 for the X-axisdirection (the longitudinal direction) and the Y-axis direction (thelateral direction), respectively, as in the case of, for example, thefloor reaction force horizontal component permissible range for theaforesaid simplified model gaits. Then, for example, the value of ka*μof the above Equation 12 is set as the parameter that defines the floorreaction force horizontal component permissible range for full modelcorrection. However, the floor reaction force horizontal componentpermissible range is desirably set to that it securely falls within therange of a frictional limit by, for example, setting the value ofcoefficient ka of Equation 12 to be smaller than the floor reactionforce horizontal component permissible range for simplified model gaits.

The floor reaction force moment vertical component permissible range isset in the same manner as that for the floor reaction force horizontalcomponent permissible range. More specifically, the floor reaction forcemoment vertical component permissible range is set to the pattern, asshown in the aforesaid FIG. 41, according to the aforesaid Equation1012.

The ZMP permissible range is set in the same manner as that for the caseexplained in conjunction with the setting of the floor reaction forcemoment horizontal component permissible range in S3030 of FIG. 56 in theaforementioned second reference example. The ZMP permissible range maybe of course converted into a floor reaction force moment horizontalcomponent permissible range equivalent thereto by multiplying the ZMPpermissible range by a desired floor reaction force vertical component.

Subsequently, the processing proceeds to S3532 wherein the instantaneousvalue of the current time gait (the value at the current time t) isdetermined using the aforesaid simplified model (the dynamic model shownin FIG. 12). The processing of this S3532 is identical to the processingof S030 of FIG. 13 in the aforesaid first reference example.

The instantaneous value of the gait at the current time t generated bythe processing up to S3532 explained above will be hereinafter referredto as the simplified model gait instantaneous value. In the presentembodiment, the simplified model gait instantaneous value is determinedusing a simplified model (the dynamic model shown in FIG. 12) such thatthe floor reaction force moment horizontal component generated about adesired ZMP by the resultant force of the inertial force and gravitygenerated in the robot 1 by a motion thereof is zero (such that adynamic balance condition related to the desired ZMP is satisfied).

In this case, of the simplified model gait instantaneous values, theinstantaneous values of a horizontal body position and a body postureinclination angle, the instantaneous value of a vertical body position,and an instantaneous value of an antiphase arm swing angle areprovisional instantaneous values and will be corrected by full modelcorrection to be discussed later. Further, of the simplified model gaitinstantaneous values in the present embodiment, the instantaneous valueof the desired floor reaction force moment horizontal component aboutthe desired ZMP is normally zero, whereas a desired floor reaction forcemoment horizontal component for compliance control as the desired valueof the floor reaction force moment horizontal component generated aboutthe desired ZMP by the full model correction, which will be discussedlater, is generated.

Subsequently, the processing proceeds to S3534 wherein the instantaneousvalues (the values at the current time t) of the floor reaction forcehorizontal component permissible range, the floor reaction force momentvertical component permissible range, and the ZMP permissible range forgait correction are determined on the basis of the parameters (whichhave been set in S3530) that define the floor reaction force horizontalcomponent permissible range, the floor reaction force moment verticalcomponent permissible range, and the ZMP permissible range for gaitcorrection (for full model correction).

Subsequently, the processing proceeds to S3536 wherein the full model isused to generate a corrected gait (to correct the gait) so as todetermine the instantaneous value of a final desired gait. Morespecifically, as explained with reference to the aforesaid FIG. 64, thecalculation (determination) of corrected desired body position/posture,a corrected desired antiphase arm swing angle, and a desired floorreaction force moment (a horizontal component and a vertical component)for compliance control as a desired floor reaction force moment (ahorizontal component and a vertical component) about a desired ZMP ismainly performed.

Subsequently, the processing proceeds to S3538 to increment the time tby Δt, and returns to S3514 again to repeat the processing from S3514 toS3538.

The processing of S3536 described above, which constitutes acharacteristic of the present embodiment, will be explained in detailbelow. The gait correcting technique of a device in accordance with thepresent embodiment is a full-model feedforward correction type.Furthermore, the gait correction technique uses an inverse dynamic fullmodel (inverse full mode), and it is a technique that does not correctan input of a simplified model gait, and it is a technique that uses aperturbation model.

FIG. 67 is a functional block diagram explaining the operation of thegait generating device 100 according to the present embodiment,specifically, the technique for correcting a gait in S3536 of theflowchart of FIG. 66. A simplified model 200 shown in FIG. 67 representsnot only a dynamic model but the processing of S3510 to S3532 discussedabove, namely, the processing of calculating (determining) theinstantaneous value of a simplified model gait. In FIG. 67, therefore,the portion beyond the simplified model 200 corresponds to theprocessing of S3536.

The processing for determining the instantaneous values of the floorreaction force horizontal component permissible range and the ZMPpermissible range for gait correction (for full model correction) isshown using a reference mark S3534 of the flowchart of FIG. 66.

The actual processing is implemented by a single computer, so that it isimplemented in order toward a downstream side (toward a gait outputside) from an upstream side of the block diagram after the block diagramis broken up. However, a feedback amount returned to the upstream sideuses a value (a state amount) calculated in the last control cycle (timet−Δt with respect to the current time t). Hereinafter, the valuecalculated in the last time control cycle (time t−Δt) will beabbreviated as a last time value.

Each time the processing of S3536 is carried out, the calculation forone control cycle in the block diagram is performed.

In S3536, first, the instantaneous values of variables representing amotion (this is called a motion variable), such as the desired bodyposture angle (hereinafter referred to as the simplified model bodyposture angle. Further, an inclination angle component thereof will bereferred to as the simplified model body posture inclination angle), thedesired horizontal body position (hereinafter referred to as thesimplified model horizontal body position), the desiredcenter-of-gravity position, the desired foot position/posture, and thedesired arm posture (including the desired antiphase arm swing angle) ofthe simplified model gait obtained as described above, and theinstantaneous value of a desired ZMP are input to the aforesaid inversedynamic full model (inverse full model) 201. The floor reaction forcehorizontal component balancing the motion represented by the inputmotion variables (in other words, a full model is generated by themotion) and the floor reaction force moment about the desired ZMP (ahorizontal component and a vertical component) are calculated by thecalculation processing of the inverse full model 201. In the presentembodiment, the floor reaction force moment horizontal component aboutthe desired ZMP in the simplified model gait is zero, so that the floorreaction force moment horizontal component about the desired ZMPcalculated by the inverse full model 201 has a meaning as an error of asimplified model gait. Incidentally, the floor reaction force horizontalcomponent, the floor reaction force moment horizontal component, and thefloor reaction force moment vertical component determined by the inversefull model 201 are called “the full-model floor reaction forcehorizontal component,” “the full-model floor reaction force momenthorizontal component,” and “the full-model floor reaction force momentvertical component,” respectively. Hereinafter, the full-model floorreaction force horizontal component will be frequently abbreviated asFfull, the full-model floor reaction force moment horizontal componentwill be frequently abbreviated as Mfullxy, and the full-model floorreaction force moment vertical component will be frequently abbreviatedas Mfullz.

Furthermore, the aforesaid inverse full model 201 calculates thevertical body position that satisfies a desired center-of-gravityposition. Although not shown, the inverse full model 201 also calculatesthe center-of-gravity horizontal position.

Supplementally, a desired total center-of-gravity vertical position isinput to the full model, and a desired floor reaction force verticalcomponent is determined from the second order differential value of thedesired total center-of-gravity vertical position. Hence, there is noparticular need to input a desired floor reaction force verticalcomponent to the full model. For a reason of achieving a reduction ofcalculation or the like, a desired floor reaction force verticalcomponent may be input to the full model even if it is redundant.

A perturbation model used for gait correction will now be explained.

The perturbation model is composed of a horizontal body positioncorrecting perturbation model 202, a body posture inclination anglecorrecting perturbation model 203, and an antiphase arm swing anglecorrecting perturbation model 231. The perturbation model may be asingle model shown in FIG. 12 rather than being composed of such threeseparate models. The body posture inclination angle correctingperturbation model 203 is abbreviated as the body posture anglecorrecting perturbation model 203 in the figure.

The horizontal body position correcting perturbation model 202represents the relationship between the perturbation of a floor reactionforce and the perturbation of a horizontal body position in theaforesaid body translational mode.

The horizontal body position correcting perturbation model 202 receivesa correction amount of a desired floor reaction force moment andcalculates a correction amount of a desired horizontal body positionthat dynamically balances with the received correction amount of thedesired floor reaction force moment. This input (the correction amountof the desired floor reaction force moment) is called a perturbationmodel moment for correcting horizontal body position Mp. An output (thecorrection amount of a desired horizontal body position) of thehorizontal body position correcting perturbation model 202 is called acorrecting perturbation model horizontal body position Xc. The floorreaction force horizontal component generated by the horizontal bodyposition correcting perturbation model 202 is called a perturbationmodel floor reaction force horizontal component for correctinghorizontal body position Fp.

The horizontal body position correcting perturbation model 202 isrepresented by an inverted pendulum composed of a support point, aninverted pendulum mass point (body mass point) and an extensible supportrod connecting them, as shown in FIG. 68. The position of the supportpoint is set so that the horizontal position of the support point agreeswith the horizontal position of the origin of the current time's gaitsupporting leg coordinate system described above, and the verticalposition of the support point agrees with the vertical position of adesired ZMP. A mass mb of the inverted pendulum mass point is identicalto the mass of the body mass point of the aforesaid simplified model(the model with 3 mass points+flywheels) shown in FIG. 12. A verticalposition Zc of the inverted pendulum mass point is to be identical to avertical position Zb of the body mass point position of the simplifiedmodel shown in FIG. 12, which corresponds to a simplified gait.

The horizontal body position correcting perturbation model 202 shows therelationship between a perturbation ΔMy of a floor reaction force momentand a perturbation ΔXb of a body mass point horizontal position in theaforesaid simplified model.

Hence, assuming that parameters other than My, Xb, and Zb takeconstants, if the relationship between the perturbation ΔMy of a floorreaction force moment and the perturbation ΔXb of a body mass pointhorizontal position is determined from the above Equation 03y, then thefollowing equation will be obtained.ΔMy=−mb*ΔXb*(g+d2zb/dt2)+mb*(Zb−Zzmp)*d2ΔXb/dt2  Equation a12

Similarly, assuming that parameters other than Fx and Xb take constants,if the relationship between the perturbation ΔFx of a floor reactionforce horizontal component and the perturbation ΔXb of a body mass pointhorizontal position is determined from the above Equation 02x, then thefollowing equation will be obtained.ΔFx=mb*d2ΔXb/dt2  Equation a13

A body translational mode floor reaction force ratio h, which is theratio of ΔMp to ΔFp generated by a horizontal body acceleration, is theratio of the term generated by the horizontal body acceleration (thatis, the second term) of the right side of Equation a12 to Equation a13,so that the following equation will be obtained.h=(Zb−Zzmp)  Equation a14

In other words, the body translational mode floor reaction force ratio hcorresponds to the height from the support point of the body mass point(the inverted pendulum mass point) of the simplified model.

Accordingly, the following equation is derived from Equation a12 andEquation a14.ΔMy=−mb*ΔXb*(g+d2Zb/dt2)+mb*h*d2ΔXb/dt2  Equation a15

Meanwhile, the floor reaction force vertical component that balanceswith the translational force vertical component of the resultant forceof the gravity and the inertial force acting on the body mass point (theinverted pendulum mass point) is referred to as a body floor reactionforce vertical component Fbz. Specifically, the body floor reactionforce vertical component Fbz is defined by the following equation.Fbz=mb*(g+d2Zb/dt2)  Equation a16

And, from the Equation a16 and the aforesaid Equation 01, the body floorreaction force vertical component Fbz is determined from the followingequation.Fbz=Fz−msup*(g+d2Zsup/dt2)−mswg*(g+d2Zswg/dt2)  Equation a17

In other words, the body floor reaction force vertical component isequal to the sum of the floor reaction force vertical component Fz andthe translational force vertical component of the resultant force of thegravity and the inertial force acting on both leg mass points of theaforesaid simplified model (the model with 3 mass points+flywheels)shown in FIG. 12.

Substituting Equation a16 into Equation a15 provides the followingequation.ΔMy=−Fbz*ΔXb+mb*h*d2ΔXb/dt2  Equation a18

Associating ΔMy of Equation a18 with the perturbation model moment forcorrecting horizontal body position Mp, and associating ΔXb with thecorrecting perturbation model horizontal body position Xc (substitutingthe perturbation model moment for correcting horizontal body position Mpinto ΔMy of Equation a18, and substituting the correcting perturbationmodel horizontal body position Xc into ΔXb) provide the followingequation.Mp=−Fbz*Xc+mb*h*d2Xc/dt2  Equation a19

In other words, the horizontal body position correcting perturbationmodel 202 is expressed by Equation a19 by using the body translationalmode floor reaction force ratio h determined according to Equation a14and the body floor reaction force vertical component Fbz determinedaccording to Equation a17.

Further, associating ΔFx of Equation a13 with the perturbation modelfloor reaction force horizontal component for correcting horizontal bodyposition Fp provides the following equation.Fp=mb*d2Xc/dt2  Equation a20

In other words, the horizontal body position correcting perturbationmodel 202 is described by Equation a14, Equation a17, Equation a19, andEquation a20.

Supplementally, it is regarded here that the perturbation of a body masspoint position and the perturbation of a body position (the position ofa body representative point) agree; strictly speaking, however, they donot always agree. Accordingly, to determine the relationship among Mp,Fp, and Xc, a model that expresses a geometric relationship between thehorizontal position of a body mass point and a body position is furthernecessary.

Meanwhile, a body posture inclination angle correcting perturbationmodel 203 represents a relationship between the perturbation of a floorreaction force and a body posture inclination angle in the aforesaidbody inclination mode.

The body posture inclination angle correcting perturbation model 203receives a correction amount of a floor reaction force moment horizontalcomponent and calculates a correction amount of a desired body postureinclination angle that dynamically balances with the received correctionamount of the floor reaction force moment horizontal component. Thisinput (the correction amount of the floor reaction force moment) iscalled a perturbation model moment for correcting body postureinclination angle Mr (abbreviated to a perturbation model for correctingbody posture angle Mr in some cases). An output (the correction amountof a desired body posture inclination angle) of the body postureinclination angle correcting perturbation model 203 is called acorrecting perturbation model body posture inclination angle θc. Thefloor reaction force horizontal component generated by the body postureinclination angle correcting perturbation model 203 is called aperturbation model floor reaction force horizontal component forcorrecting horizontal body position Fr. Fr is zero as mentioned above.This means that the following equation always holds.Fr=0  Equation a21

The body posture inclination angle correcting perturbation model 203 isexpressed by a flywheel, as shown in FIG. 69. Supplementally, FIG. 69shows only the flywheel that rotates about the Y-axis; however, the bodyposture inclination angle correcting perturbation model 203 actuallyrequires a flywheel that rotates about the X-axis in addition to theflywheel rotating about the Y-axis. The inertia of those flywheels arethe same as the flywheels FHx and FHy of the aforesaid simplified model(the model with 3 mass points+flywheels) shown in FIG. 12. Therotational angle of a flywheel of the body posture inclination anglecorrecting perturbation model 203 corresponds to the correctingperturbation model body posture inclination angle θc, and the floorreaction force moment horizontal component generated by the flywheelcorresponds to the perturbation model moment Mr for correcting bodyposture inclination angle. In the following explanation, for theconvenience of understanding, the explanation will center around theflywheel that rotates about the Y-axis. The same applies to the flywheelthat rotates about the X-axis.

The body posture inclination angle correcting perturbation model 203(more specifically, the model related to a sagittal plane) expresses arelationship between the floor reaction force moment perturbation ΔMyand the body posture inclination angle perturbation Δθby in theaforesaid Equation 03y of the dynamic equation of the aforesaidsimplified model (the model with 3 mass points+flywheels).

Accordingly, if parameters other than My and θby are regarded asconstants, and if the relationship between the floor reaction forcemoment horizontal component perturbation ΔMy and the body postureinclination angle perturbation Δθby is determined according to Equation03y, then the following equation will be obtained.ΔMy=J*d2Δθby/dt2  Equation a22

Associating ΔMy of Equation a22 with the perturbation model moment forcorrecting body posture inclination angle Mr, and associating Δθby withthe correcting perturbation model body posture inclination angle θcprovide the following equation.Mr=J*d2Δθc/dt2  Equation a23

In other words, the body posture inclination angle correctingperturbation model 203 is represented by equation a23. The perturbationmodel floor reaction force horizontal component for correctinghorizontal body position Fr is determined according to Equation a21 asdescribed above (Fr=0). In the above description, the dynamics of thebody posture inclination angle correcting perturbation model 203 hasbeen explained on the sagittal plane. The dynamics on a lateral plane isrepresented by the same type as Equation a23.

An antiphase arm swing angle correcting perturbation model 231 shows therelationship between the perturbation of a floor reaction force and theperturbation of an antiphase arm swing angle in the antiphase arm swingmode.

The antiphase arm swing angle correcting perturbation model 231 receivesa correction amount of a floor reaction force moment vertical componentand calculates a correction amount of a desired antiphase arm swingangle that dynamically balances with the received correction amount ofthe floor reaction force moment vertical component. This input (thecorrection amount of the floor reaction force moment vertical component)is called a perturbation model moment for correcting antiphase arm swingangle Ma. An output (the correction amount of a desired antiphase armswing angle) of the antiphase arm swing angle correcting perturbationmodel 203 is called a correcting perturbation model antiphase arm swingangle θca. The floor reaction force horizontal component generated bythe perturbation model for correcting antiphase arm swing angle iscalled a perturbation model floor reaction force horizontal componentfor correcting antiphase arm swing angle Fa. Fa is zero as describedabove. This means that the following equation always holds.Fa=0  Equation a21c

The antiphase arm swing angle correcting perturbation model 231 isexpressed by a flywheel, as shown in FIG. 70. The inertia of theflywheel is the same as the flywheel FHaz of the aforesaid simplifiedmodel (the model with 3 mass points+flywheels) shown in FIG. 12. Therotational angle of the flywheel of the antiphase arm swing anglecorrecting perturbation model 231 corresponds to the correctingperturbation model antiphase arm swing angle θca, and the floor reactionforce moment vertical component generated by the flywheel corresponds tothe perturbation model moment for correcting antiphase arm swing angleMa.

The antiphase arm swing angle correcting perturbation model 231expresses a relationship between the floor reaction force momentperturbation ΔMz and the antiphase arm swing angle perturbation Δθaz inthe aforesaid Equation 03z of the dynamic equation of the aforesaidsimplified model (the model with 3 mass points+flywheels).

Accordingly, if parameters other than Mz and θaz are regarded asconstants, and if the relationship between the floor reaction forcemoment perturbation ΔMz and the antiphase arm swing angle perturbationΔθaz is determined according to Equation 03z, then the followingequation will be obtained.ΔMz=Jaz*d2Δθaz/dt2  Equation a22c

Associating ΔMz of Equation a22c with the perturbation model moment forcorrecting antiphase arm swing angle Ma, and associating Δθaz with thecorrecting perturbation model antiphase arm swing angle θca provide thefollowing equation.Ma=Jaz*d2Δθca/dt2  Equation a23c

In other words, the antiphase arm swing angle correcting perturbationmodel 231 is represented by equation a23c. The perturbation model floorreaction force horizontal component for correcting antiphase arm swingangle Fa is determined according to Equation a21c as described above(Fa=0).

As it will be discussed later, in S3536, a corrected gait (to be morespecific, a desired instantaneous value with some instantaneous valuesof a simplified model gait corrected) are eventually generated (output).A desired body posture inclination angle of the corrected gait(hereinafter referred to as the corrected desired body postureinclination angle) is obtained by adding the aforesaid correctingperturbation model body posture inclination angle θc (the valuedetermined in the control cycle at the current time t) to theinstantaneous value of the aforesaid determined simplified model bodyposture inclination angle (the instantaneous value of the desired bodyposture inclination angle at the current time t of the current time gaitdetermined in S3532) by a calculator 204. The desired horizontal bodyposition of the corrected gait (hereinafter referred to as the correcteddesired horizontal body position) is obtained by adding the correctingperturbation model horizontal body position Xc (the value determined inthe control cycle at the current time t) to the instantaneous value ofthe aforesaid determined simplified model horizontal body position (theinstantaneous value of the desired horizontal body position at thecurrent time t of the current time gait determined in S3532) by acalculator 205. Further, a desired antiphase arm swing angle of acorrected gait (hereinafter referred to as the corrected desiredantiphase arm swing angle) is obtained by adding the correctingperturbation model antiphase arm swing angle θca (the value determinedin the control cycle at the current time t) to the instantaneous valueof the aforesaid determined simplified model antiphase arm swing angle(the instantaneous value of the desired antiphase arm swing angle at thecurrent time t of the current time gait determined in S3532) by acalculator 232.

The desired floor reaction force of the corrected gait is alsocorrected. Specifically, the floor reaction force moment horizontalcomponent about the desired ZMP is no longer zero, and the desired floorreaction force moment horizontal component for compliance control isoutput as a desired value. Further, the desired floor reaction forcehorizontal component is also corrected to a corrected desired floorreaction force horizontal component and output. In addition, the desiredfloor reaction force moment vertical component is corrected to acorrected desired floor reaction force moment vertical component andoutput.

As described above, the motion of the corrected gait is the motionobtained by adding (combining) the motions of perturbation models (to bemore specific, the motions of the horizontal body position correctingperturbation model 202 and the body posture inclination angle correctingperturbation model 203 and the motion of the antiphase arm swing anglecorrecting perturbation model 231) to the motion of a simplified modelgait.

In general, the floor reaction force generated by a motion obtained byadding a certain perturbative motion to a certain reference motion isapproximated by the sum of the floor reaction force generated by thereference motion (the floor reaction force counterbalancing the gravityand the inertial force generated by the motion) and the perturbationalportion of the floor reaction force generated by the perturbativemotion.

Considering that the floor reaction force horizontal component generatedby the body inclination mode, the floor reaction force moment verticalcomponent generated by the body inclination mode, the floor reactionforce horizontal component generated by the antiphase arm swing mode,and the floor reaction force moment horizontal component generated bythe antiphase arm swing mode are all zero, the three equations givenbelow must be satisfied in order for the result, which is obtained byadding the compensating total floor reaction force moment horizontalcomponent Mdmdxy to the floor reaction force moment that balances withthe motion of a corrected gait on the inverse full model 201, to agreewith a corrected desired floor reaction force moment (to satisfy thecondition of A1 described above).Full-model floor reaction force moment horizontal componentMfullxy+Perturbation model moment for correcting horizontal bodyposition Mp+Perturbation model moment for correcting body postureinclination angle Mr+Compensating total floor reaction force momenthorizontal component Mdmdxy=Corrected desired floor reaction forcemoment horizontal component  Equation h5Full-model floor reaction force horizontal component Ffull +Perturbationmodel floor reaction force horizontal component for correctinghorizontal body position Fp=Corrected desired floor reaction forcehorizontal component  Equation h6Full-model floor reaction force moment vertical componentMfullz+Perturbation model moment vertical component for correctinghorizontal body position Mpz+Perturbation model moment verticalcomponent for correcting antiphase arm swing angle Maz=Corrected desiredfloor reaction force moment vertical component  Equation h1006

where the perturbation model moment vertical component for correctinghorizontal body position Mpz denotes the floor reaction force momentvertical component generated on the inverse full model 201 by a motionof the perturbation model for correcting horizontal body position. Themoments of Equation h5 and Equation h1006 are the moments about anoriginal (simplified model's) desired ZMP.

The true ZMP of a corrected gait is changed to a point deviated from thedesired ZMP (ideal desired ZMP) of a simplified model gait by the valueobtained by dividing a corrected desired floor reaction force moment bya desired floor reaction force vertical component.True ZMP of corrected gait=Desired ZMP+Corrected desired floor reactionforce moment/Desired floor reaction force vertical component  Equationh7

To calculate the component in the X direction (longitudinal direction)of the true ZMP of a corrected gait, the component about the Y-axis(lateral axis) of a corrected desired floor reaction force moment isused. Further, to calculate the component in the Y direction of the trueZMP of a corrected gait, the component about the X-axis (longitudinalaxis) of a corrected desired floor reaction force moment is used.However, when calculating the component in the Y direction of the trueZMP of a corrected gait, “+” of the right side of Equation h7 must bechanged to “−”.

Supplementally, a corrected desired floor reaction force moment verticalcomponent about the true ZMP of a corrected gait may be calculated, asan alternative.

The corrected desired floor reaction force moment vertical componentabout the true ZMP of a corrected gait will be the outcome obtained byadding the outer product of the difference between the true ZMP of acorrected gait and a desired ZMP and the corrected desired floorreaction force horizontal component determined according to Equation h6to the moment about an original desired ZMP.

The true ZMP of the corrected gait determined according to Equation h7must fall within a ZMP permissible range. This is called a ZMPrestriction condition.

The corrected desired floor reaction force horizontal component mustfall within a floor reaction force horizontal component permissiblerange for correcting gait (for full-model correction). This is called afloor reaction force horizontal component restriction condition.

The corrected desired floor reaction force moment vertical componentmust fall within a floor reaction force moment vertical componentpermissible range for correcting gait (for full-model correction). Thisis called a floor reaction force moment vertical component restrictioncondition.

As described above, a corrected gait must satisfy Equation h5, Equationh6, Equation h1006, the ZMP restriction condition (the condition of arange in which the true ZMP of the corrected gait obtained from Equationh7 exists), the floor reaction force horizontal component restrictioncondition, and the floor reaction force moment vertical componentrestriction condition.

However, merely satisfying these equations and conditions would causedivergence of the aforesaid correcting perturbation model body position,the aforesaid correcting perturbation model body posture inclinationangle, and the aforesaid correcting perturbation model antiphase armswing angle.

Therefore, on the basis of the state amounts of the aforesaid horizontalbody position correcting perturbation model 202, the aforesaid bodyposture inclination angle correcting perturbation model 203, and theaforesaid antiphase arm swing angle correcting perturbation model 231(to be more specific, correcting perturbation model's horizontal bodyposition/velocity, correcting perturbation model's body postureinclination angle/angular velocity, and correcting perturbation model'santiphase arm swing angle/angular velocity, etc.), the stabilizationcontrol of the correcting perturbation models 202, 203, and 231 isconducted so as to converge (stabilize) these state amounts topredetermined states.

First, the stabilization control of the horizontal body positioncorrecting perturbation model 202 will be explained in detail.

The control law for converging (stabilizing) the horizontal bodyposition correcting perturbation model 202 to a desired steady positionis referred to as a perturbation model control law 206 for correctinghorizontal body position, and the feedback amount (manipulated variable)determined by this control law is referred to as a required value Mpfdmdof perturbation model stabilization moment for correcting horizontalbody position. The term “required value” has been added becauserestriction is added to the value determined according to the abovecontrol law to correct it such that the true ZMP exits in the aforesaidZMP permissible range and the floor reaction force horizontal componentfalls within a floor reaction force horizontal component permissiblerange, as it will be discussed hereinafter. The moment corrected byadding restriction thereto is referred to as the horizontal bodyposition correcting perturbation model stabilization moment Mpf.

Specifically, the perturbation model control law 206 for correctinghorizontal body position uses Equation h10. However, a desired steadyposition is given by Equation h8. Further, mtotal denotes the totalweight of the aforesaid robot, mb denotes the mass of the aforesaid bodymass point (the mass of the inverted pendulum), and XGf denotes thecenter-of-gravity horizontal position calculated using a full model onthe basis of an instantaneous posture of a simplified model gait, thatis, the center-of-gravity horizontal position calculated by theaforesaid inverse full model. Further, Kpp and Kpv denote the gains offeedback control.Desired steady position=−mtotal/mb*(XGf−XGs)  Equation h8Required value Mpfdmd of perturbation model stabilizing moment forcorrecting horizontal body position =Kpp*(Correcting perturbation modelhorizontal body position Xc−Desired steady position) +Kpv*Correctingperturbation model horizontal body velocity dXc/dt−Correctingperturbation model horizontal body position Xc*Body floor reaction forcevertical component Fbz  Equation h10

To determine the component about the X-axis (longitudinal axis) of therequired value Mpfdmd of perturbation model stabilizing moment forcorrecting horizontal body position, a correcting perturbation modelhorizontal body position velocity and a desired steady position use acomponent in the Y-axis direction (lateral direction).

To determine the component about the Y-axis (lateral axis) of therequired value Mpfdmd of perturbation model stabilizing moment forcorrecting horizontal body position, a correcting perturbation modelhorizontal body position velocity and a desired steady position use acomponent in the X-axis direction (longitudinal direction), and “−” inthe third term of the right side is replaced by “+”.

The details have been described in PCT/JP03/00435 previously proposed bythe present applicant, so that further explanation will be omitted.

The stabilization control of the body posture inclination anglecorrecting perturbation model 203 will now be explained in detail.

According to the state of the body posture inclination angle correctingperturbation model 203, a feedback amount (manipulated variable) isdetermined according to a feedback control law, such as the PI control,so that a corrected desired body posture inclination angle, that is, theinclination angle obtained by adding a correcting perturbation modelbody posture inclination angle to a desired body posture inclinationangle based on a simplified model, stabilizes to or follows a referencebody posture inclination angle (determined in S3404 of FIG. 57) outputby the desired instantaneous value generator 100 b or a desired bodyposture inclination angle (obtained in S3414 of FIG. 57) based on asimplified model, and the determined feedback amount is additionallyinput to the body posture inclination angle correcting perturbationmodel 203.

This control law is referred to as a body posture inclination anglecorrecting perturbation model control law 207 (abbreviated as the bodyposture angle correcting perturbation model control law 207 in somecases), and the feedback amount (manipulated variable) is referred to asa required value Mrfdmd of perturbation model stabilizing moment forcorrecting body posture inclination angle. The term “required value” hasbeen added for the same reason as that for the required value Mpfdmd ofperturbation model stabilizing moment for correcting horizontal bodyposition. The moment corrected by adding restriction thereto is referredto as perturbation model stabilizing moment Mrf for correcting bodyposture inclination angle.

Specifically, the body posture inclination angle correcting perturbationmodel control law 207 for determining the required value Mrfdmd ofperturbation model stabilizing moment for correcting body postureinclination angle is implemented according to the equation given below.Required value Mrfdmd of perturbation model stabilizing moment forcorrecting body posture inclination angle =Krp*(Correcting perturbationmodel body posture inclination angle θc−(Reference body postureinclination angle−Desired body posture inclination angle based onsimplified model)) +Krv*Correcting perturbation model body postureinclination angular velocity dθc/dt  Equation h11

where Krp and Krv denote feedback control gains.

In Equation h11, (Reference body posture inclination angle−Desired bodyposture inclination angle based on simplified model) may be replaced byzero.

The processing in S3536 will be explained by referring back to thefunctional block diagram of FIG. 67. As described above, the requiredvalue Mpfdmd of perturbation model stabilization moment for correctinghorizontal body position is determined according to the perturbationmodel control law 206 for correcting horizontal body position (Equationh10). Further, the required value Mrfdmd of perturbation modelstabilization moment for correcting body posture inclination angle isdetermined according to the body posture inclination angle correctingperturbation model control law 207 (Equation h11).

Subsequently, an estimated (calculated) value F0 of floor reaction forceof the perturbation model for correcting body position when it isassumed that the horizontal body position correcting perturbation modelstabilization moment Mpf is zero is determined by a F0 calculator 208.As it will be discussed hereinafter, the full-model floor reaction forcemoment horizontal component Mfullxy to which the horizontal bodyposition correcting perturbation model stabilization moment Mpf has beenadded is supplied to the horizontal body position correctingperturbation model 202. Hence, F0 is the floor reaction force generatedby the horizontal body position correcting perturbation model 202 ifonly the full-model floor reaction force moment horizontal componentMfullxy with a reversed sign is supplied to the horizontal body positioncorrecting perturbation model 202.

Specifically, F0 is determined according to the equation given below.F0=mb*d2Xc/dt2−1/h*Mpf  Equation h12

The first term of the right side denotes a floor reaction forcehorizontal component of the horizontal body position correctingperturbation model 202 of the last time (time t−Δt).

The second term of the right side denotes the floor reaction forcehorizontal component directly generated in (i.e., a direct term of) thehorizontal body position correcting perturbation model 202 by thehorizontal body position correcting perturbation model stabilizingmoment Mpf of the last time.

More specifically, the estimated value of the floor reaction force F0 ofa body position correcting perturbation model when it is assumed thatMpf is zero is determined by subtracting the value, which is obtained bydividing the horizontal body position correcting perturbation modelstabilization moment Mpf of the last time by the body translational modefloor reaction force ratio h, from the value obtained by multiplying thebody mass point horizontal acceleration of the last time of thehorizontal body position correcting perturbation model 202 by the massmb of the body mass point.

Subsequently, if it is assumed that the horizontal body positioncorrecting perturbation model stabilization moment Mpf is matched withthe required value Mpfdmd of horizontal body position correctingperturbation model stabilization moment, the body posture inclinationangle correcting perturbation model stabilization moment Mrf is matchedwith the required value Mrfdmd of body posture inclination anglecorrecting perturbation model stabilization moment, a desired floorreaction force moment for compliance control as a desired floor reactionforce moment horizontal component about a desired ZMP is matched withthe total sum of the compensating total floor reaction force momenthorizontal component Mdmdxy, Mpf, and Mrf, while ignoring the aforesaidrestriction (the floor reaction force horizontal component restrictivecondition and the ZMP restrictive condition), then the floor reactionforce moment horizontal component Min generated about the desired ZMP isdetermined by a Min calculator 209. This floor reaction force momenthorizontal component is referred to as a corrected desired floorreaction force moment horizontal component without restriction Min. Thecorrected desired floor reaction force moment horizontal componentwithout restriction Min is determined according to the followingequation.Min=Mpfdmd+Mrfdmd+Mdmdxy  Equation h13

This means that the corrected desired floor reaction force momenthorizontal component without restriction Min is obtained by adding therequired value Mpfdmd of horizontal body position correctingperturbation model stabilization moment, the required value Mrfdmd ofbody posture inclination angle correcting perturbation modelstabilization moment, and the compensating total floor reaction forcemoment horizontal component Mdmdxy.

Subsequently, if it is assumed that the horizontal body positioncorrecting perturbation model stabilization moment Mpf is matched withthe required value Mpfdmd of horizontal body position correctingperturbation model stabilization moment, the body posture inclinationangle correcting perturbation model stabilization moment Mrf is matchedwith the required value Mrfdmd of body posture inclination anglecorrecting perturbation model stabilization moment, and a desired floorreaction force moment for compliance control is matched with the totalsum of the compensating total floor reaction force moment horizontalcomponent Mdmdxy, Mpf, and Mrf, while ignoring the aforesaid restriction(the floor reaction force horizontal component restrictive condition andthe ZMP restrictive condition), then the floor reaction force horizontalcomponent Fin to be generated is determined by a Fin calculator 210.This floor reaction force horizontal component is referred to as acorrected desired floor reaction force horizontal component withoutrestriction Fin.

The corrected desired floor reaction force horizontal component isobtained by the above Equation h6. As described above, no floor reactionforce horizontal component is generated in the body posture inclinationangle correcting perturbation model 203 by a behavior of the bodyposture inclination angle correcting perturbation model 203, meaningthat Fr is zero. Accordingly, the corrected desired floor reaction forcehorizontal component without restriction Fin is obtained by adding thefloor reaction force horizontal component, which is increased bychanging the horizontal body position correcting perturbation modelstabilization moment Mpf from zero to the required value Mpfdmd ofhorizontal body position correcting perturbation model stabilizationmoment, to the corrected desired floor reaction force horizontalcomponent in a case where it is assumed that the horizontal bodyposition correcting perturbation model stabilization moment Mpf is zero.

Incidentally, the floor reaction force horizontal component, which isincreased by changing the horizontal body position correctingperturbation model stabilization moment Mpf from zero to the requiredvalue Mpfdmd of horizontal body position correcting perturbation modelstabilization moment, takes a value obtained by dividing the requiredvalue Mpfdmd of horizontal body position correcting perturbation modelstabilization moment by the body translational mode floor reaction forceratio h.

Hence, as shown by Equation h15, the corrected desired floor reactionforce horizontal component Fin without restriction is obtained by addingthe aforesaid determined full-model floor reaction force horizontalcomponent Ffull to the value obtained by dividing the required valueMpfdmd of horizontal body position correcting perturbation modelstabilization moment by the body translational mode floor reaction forceratio h, and further by adding the calculated value F0 of the floorreaction force of the body position correcting perturbation model whenit is assumed that the horizontal body position correcting perturbationmodel stabilization moment Mpf is zero.Fin=1/h*Mpfdmd+Ffull+F0  Equation h15

Subsequently, based on the corrected desired floor reaction force momenthorizontal component without restriction Min and the corrected desiredfloor reaction force horizontal component without restriction Fin, acorrected desired floor reaction force moment horizontal component withrestriction Mltd and a corrected desired floor reaction force horizontalcomponent with restriction Fltd (about a desired ZMP), which are thevalues that have added restriction thereto, are determined by arestricting means (restriction processing unit) 211. In the presentembodiment, a desired floor reaction force moment horizontal componentfor compliance control agrees with the corrected desired floor reactionforce moment horizontal component with restriction Mltd, and the floorreaction force horizontal component of a corrected gait agrees with acorrected desired floor reaction force horizontal component withrestriction Fltd.

The corrected desired floor reaction force moment horizontal componentwith restriction Mltd and the corrected desired floor reaction forcehorizontal component with restriction Fltd are determined such that thetrue ZMP of the corrected gait (including the desired floor reactionforce moment horizontal component for compliance control) falls withinthe aforesaid ZMP permissible range and the floor reaction forcehorizontal component of the corrected gait falls within a floor reactionforce horizontal component permissible range. In other words, Mltd andFltd are determined such that the ZMP restrictive condition and thefloor reaction force horizontal component restrictive condition aresatisfied.

Furthermore, under the aforesaid restrictive condition, a horizontalbody position correcting perturbation model stabilization moment Mp isdetermined to agree with or approximate to the required value Mpfdmd ofhorizontal body position correcting perturbation model stabilizationmoment as much as possible. Similarly, a body posture inclination anglecorrecting perturbation model stabilization moment Mr is determined tobe a value that agrees with or approximate to the required value Mrfdmdof body posture inclination angle correcting perturbation modelstabilization moment as much as possible. This stabilizes the aforesaidcorrecting perturbation model body position Xc and the aforesaidcorrecting perturbation model body posture inclination angle θc, thuspreventing divergence.

The details of the restricting means (restriction processing unit) 211are given in PCT/JP03/00435 previously proposed by the presentapplicant, so that further explanation will be omitted herein.

Subsequently, according to the following equation, the horizontal bodyposition correcting perturbation model stabilization moment Mpf and thebody posture inclination angle correcting perturbation modelstabilization moment Mrf are determined by an Mpf calculator 212 and anMrf calculator 213, respectively.Mpf=(Fltd−Ffull−F0)*h  Equation h20Mrf=Mltd−Mpf−Mdmdxy  Equation h21

More specifically, the Mpf calculator 212 multiplies the value, which isobtained by subtracting the full-model floor reaction force horizontalcomponent Ffull from the corrected desired floor reaction forcehorizontal component with restriction Fltd and subtracting therefrom thecalculated value F0 of the floor reaction force of the body positioncorrecting perturbation model 202 in the case where Mp is assumed to bezero, by the body translational mode floor reaction force ratio h so asto obtain the horizontal body position correcting perturbation modelstabilization moment Mpf. The Mrf calculator 213 subtracts the aforesaidhorizontal body position correcting perturbation model stabilizationmoment Mpf and the compensating total floor reaction force momenthorizontal component Mdmdxy from the corrected desired floor reactionforce moment horizontal component with restriction Mltd about thedesired ZMP to obtain the body posture inclination angle correctingperturbation model stabilization moment Mrf.

Subsequently, according to the equations shown below, the horizontalbody position correcting perturbation model floor reaction force momentMp and the body posture inclination angle correcting perturbation modelfloor reaction force moment Mr are determined.Mp=Mpf−Mfull  Equation h22Mr=Mrf  Equation h23

This means that an Mp calculator 214 subtracts a full-model floorreaction force moment horizontal component Mfullxy from the horizontalbody position correcting perturbation model stabilizing moment Mpf toobtain the horizontal body position correcting perturbation model floorreaction force moment Mp. The body posture inclination angle correctingperturbation model floor reaction force moment Mr takes the same valueas that of the body posture inclination angle correcting perturbationmodel stabilization moment Mrf.

Subsequently, the horizontal body position correcting perturbation modelfloor reaction force moment Mp is supplied to the body positioncorrecting perturbation model 202 in which the correcting perturbationmodel body position Xc balancing the supplied floor reaction forcemoment is calculated.

Further, the body posture inclination angle correcting perturbationmodel floor reaction force moment Mr is supplied to the body postureinclination angle correcting perturbation model 203 in which thecorrecting perturbation model body posture inclination angle θcbalancing the supplied floor reaction force moment horizontal componentis calculated.

Subsequently, calculators 205 and 204 determine a corrected desiredhorizontal body position and a corrected desired body postureinclination angle according to the following Equation h24 and Equationh25, respectively, and the determined values are output as the finaldesired instantaneous values of the horizontal body position/posture.Corrected desired horizontal body position =Simplified model horizontalbody position+Corrected perturbation model body position Xc  Equationh24Corrected desired body posture inclination angle =Simplified model bodyposture inclination angle+Corrected perturbation model body postureinclination angle θc  Equation h25

In other words, the correcting perturbation model body position Xc isadded to the simplified model horizontal body position to obtain thecorrected desired horizontal body position, and this is output as afinal desired horizontal body position. The correcting perturbationmodel body posture inclination angle θc is added to the simplified modelbody posture inclination angle to provide the corrected desired bodyposture inclination angle, and this is output as a final desired bodyposture inclination angle.

In addition, the corrected desired floor reaction force momenthorizontal component with restriction Mltd is output as a desired floorreaction force moment horizontal component for compliance control aboutthe desired ZMP, and a corrected desired floor reaction force horizontalcomponent with restriction Fltd is output as a corrected desired floorreaction force horizontal component.

More specifically, according to Equation h26 and Equation h27 shownbelow, the corrected desired floor reaction force horizontal componentand the corrected desired floor reaction force moment horizontalcomponent about the desired ZMP are determined as the final desiredinstantaneous values of the floor reaction force horizontal componentand the floor reaction force moment horizontal component (the momenthorizontal component about the desired ZMP), respectively, and these areoutput.Desired floor reaction force moment horizontal component for compliancecontrol =Corrected desired floor reaction force moment horizontalcomponent with restriction Mltd  Equation h26Corrected desired floor reaction force horizontal component =Correcteddesired floor reaction force horizontal component with restrictionFltd  Equation h27

The processing up to the above in S3536 is as per PCT/JP03/00435 by thepresent applicant, so that no further explanation will be given.

Further, in the present embodiment, an antiphase arm swing anglecorrecting perturbation model moment Ma and a desired floor reactionforce moment vertical component to be input to the antiphase arm swingangle correcting perturbation model 231 are determined in the antiphasearm swing angle correcting perturbation model moment determiner 230.Then, an antiphase arm swing angle correcting perturbation model momentMa is input to the antiphase arm swing angle correcting perturbationmodel 231 to determine a correcting perturbation model antiphase armswing angle θca.

Supplementally, the antiphase arm swing angle correcting perturbationmodel moment determiner 230 determines a feedback amount (manipulatedvariable) according to a feedback control law on the basis of the stateof the antiphase arm swing angle correcting perturbation model 231, suchas the PI control, so that a corrected desired antiphase arm swingangle, that is, the arm swing angle obtained by adding a correctingperturbation model antiphase arm swing angle to a desired antiphase armswing angle based on a simplified model, stabilizes to or follows areference antiphase arm swing angle (determined in S3404 of FIG. 57)output by the desired instantaneous value generator 100 b or a desiredantiphase arm swing angle (obtained in S3414 of FIG. 57) based on asimplified model, and the determined feedback amount is additionallyinput to the antiphase arm swing angle correcting perturbation model231.

This control law is referred to as an antiphase arm swing anglecorrecting perturbation model control law, and the feedback amount(manipulated variable) is referred to as a required value Mafdmd ofperturbation model stabilizing moment for correcting antiphase arm swingangle. The term “required value” has been added for the same reason asthat for the required value Mpfdmd of perturbation model stabilizingmoment for correcting horizontal body position. The moment corrected byadding restriction thereto is referred to as perturbation modelstabilizing moment Maf for correcting antiphase arm swing angle. In thepresent embodiment, this Maf is supplied as an antiphase arm swing anglecorrecting perturbation model moment Ma to the antiphase arm swing anglecorrecting perturbation model 231.

Specifically, the antiphase arm swing angle correcting perturbationmodel control law for determining the required value Mafdmd ofperturbation model stabilizing moment for correcting antiphase arm swingangle is implemented according to the equation given below.Required value Mafdmd of perturbation model stabilizing moment forcorrecting antiphase arm swing angle =Kap*(Correcting perturbation modelantiphase arm swing angle θca−(Reference antiphase arm swingangle−Desired antiphase arm swing angle based on simplified model))+Kav*Correcting perturbation model antiphase arm swing angular velocitydθca/dt  Equation h30

where Kap and Kav denote feedback control law gains.

In Equation h30, (Reference antiphase arm swing angle −Desired antiphasearm swing angle based on simplified model) may be replaced by zero.

The operation of the antiphase arm swing angle correcting perturbationmodel moment determiner 230 will be explained in conjunction with FIG.71 showing the functional block diagram thereof.

First, as described above, the required value Mafdmd of perturbationmodel stabilizing moment for correcting antiphase arm swing angle isdetermined according to the antiphase arm swing angle correctingperturbation model control law 230 a (Equation h30).

Subsequently, a floor reaction force moment vertical componentperturbation amount Mpz resulting from the correction of a horizontalbody position using the horizontal body position correcting perturbationmodel 202 is determined by a calculator 230 b of a floor reaction forcemoment vertical component perturbation amount resulting from acorrection of a horizontal body position.

Specifically, it is determined according to the following equation.Mpz=(Position of simplified model body mass point +Correctingperturbation model body position Xc−Desired ZMP) *(Simplified model bodymass point horizontal acceleration +Correcting perturbation model bodyacceleration d2Xc/dt2) −(Simplified model body mass point position−Desired ZMP) *(Simplified model body mass point horizontalacceleration)  Equation h31

Alternatively, the following equation approximating the above equationmay be used.Mpz≈Correcting perturbation model body position Xc*(Simplified modelbody mass point horizontal acceleration +Correcting perturbation modelbody acceleration d2Xc/dt2) +(Simplified model body mass pointposition−Desired ZMP) *Correcting perturbation model body accelerationd2Xc/dt2)  Equation h32

Subsequently, if it is assumed that the antiphase arm swing anglecorrecting perturbation model stabilization moment Maf is matched withthe required value Mafdmd of antiphase arm swing angle correctingperturbation model stabilization moment, and a desired floor reactionforce moment vertical component for compliance control as a desiredfloor reaction force moment vertical component about a desired ZMP ismatched with a total sum of Maf, Mfullz, and Mpz, while ignoring theaforesaid restrictive condition on floor reaction force moment verticalcomponent, then the floor reaction force moment vertical component Minzgenerated about the desired ZMP is determined by a calculator 230 c.This floor reaction force moment vertical component is referred to as acorrected desired floor reaction force moment vertical component withoutrestriction Minz. The corrected desired floor reaction force momentvertical component without restriction Minz is determined according tothe following equation.Minz=Mafdmd+Mfullz+Mpz  Equation h33

This means that the corrected desired floor reaction force momentvertical component without restriction Minz is obtained by adding therequired value Mafdmd of antiphase arm swing angle correctingperturbation model stabilization moment, the full-model floor reactionforce moment vertical component Mfullz, and the horizontal body positioncorrecting perturbation model moment vertical component Mpz.

Subsequently, based on the corrected desired floor reaction force momentvertical component without restriction Minz, a corrected desired floorreaction force moment vertical component with restriction Mltdz (about adesired ZMP), which is the value that has added restriction thereto, isdetermined by a restricting means (restriction processing unit) 230 d.In the present embodiment, a desired floor reaction force momentvertical component for compliance control agrees with the correcteddesired floor reaction force moment vertical component with restrictionMltdz.

The corrected desired floor reaction force moment vertical componentwith restriction Mltdz is determined such that it falls within a floorreaction force moment vertical component permissible range. In otherwords, Mltdz is determined so that it satisfies a floor reaction forcemoment vertical component restrictive condition.

Furthermore, under the aforesaid floor reaction force moment verticalcomponent restrictive condition, the antiphase arm swing anglecorrecting perturbation model stabilization moment Maf is determined toagree with or be as close as possible to the required value Mafdmd ofantiphase arm swing angle correcting perturbation model stabilizationmoment. This stabilizes the aforesaid correcting perturbation modelantiphase arm swing angle θca, thus preventing divergence.

A restricting means (restriction processing unit) 230 d is a functionhaving a saturation characteristic represented by the followingequation.

If Minz>Upper limit value of a floor reaction force moment verticalcomponent permissible range, then

Mltdz=Upper limit value of the floor reaction force moment verticalcomponent permissible range.

If Minz<Lower limit value of a floor reaction force moment verticalcomponent permissible range, then

Mltdz=Lower limit value of the floor reaction force moment verticalcomponent permissible range.

If the lower value of a floor reaction force moment vertical componentpermissible range≦Minz, and Minz≦Upper limit value of the floor reactionforce moment vertical component permissible range, thenMltdz=Minz  Equation h34

Subsequently, according to the equation shown below, an antiphase armswing angle correcting perturbation model moment Ma (=Antiphase armswing angle correcting perturbation model stabilization moment Maf) isdetermined by a Maf calculator 230 e.Ma=Mltdz−(Mfullz+Mpz)  Equation h35

This means that in the Maf calculator 230 e, an antiphase arm swingangle correcting perturbation model moment Ma as the antiphase arm swingangle correcting perturbation model stabilization moment Maf is obtainedby subtracting the full-model floor reaction force moment verticalcomponent Mfullz and the horizontal body position correctingperturbation model moment vertical component Mpz from the correcteddesired floor reaction force moment vertical component with restrictionMltdz.

Meanwhile, the corrected desired floor reaction force moment verticalcomponent with restriction Mltd is output as the desired floor reactionforce moment vertical component for compliance control about a desiredZMP.

More specifically, according to the following Equation h36, a correcteddesired floor reaction force moment vertical component about the desiredZMP is determined as the final desired instantaneous value of the floorreaction force moment vertical component (the moment vertical componentabout the desired ZMP), these are output.Desired floor reaction force moment vertical component for compliancecontrol =Corrected desired floor reaction force moment verticalcomponent with restriction Mltdz  Equation h36

After the processing of the antiphase arm swing angle correctingperturbation model moment determiner 230 is carried out as describedabove, the antiphase arm swing angle correcting perturbation modelmoment Ma is supplied to the antiphase arm swing angle correcting model231 shown in FIG. 67, and the correcting perturbation model antiphasearm swing angle θca that balances with the supplied antiphase arm swingangle correcting perturbation model moment Ma is calculated by usingEquation a23c (by integrating).

Subsequently, in the calculator 232, the corrected desired antiphase armswing angle is determined according to the following Equation h37, andthis is output as the final desired instantaneous value of the antiphasearm swing angle.Corrected desired antiphase arm swing angle =Simplified model antiphasearm swing angle +Correcting perturbation model antiphase arm swing angleθca  Equation h37

This means that the corrected desired antiphase arm swing angle isobtained by adding the correcting perturbation model antiphase arm swingangle θca to the simplified model antiphase arm swing angle, and this isoutput as the final desired antiphase arm swing angle.

The gait correction of S3536 is made as described above.

Supplementally, the present embodiment is the feedforward typecorrection, and the perturbation dynamic models are not precise models.For this reason, even if gaits are corrected so as to satisfy Equationh5, Equation h6, and Equation h1006, as described above, dynamic balanceconditions are not satisfied in the strict sense although the dynamicbalance conditions are approximately satisfied.

Furthermore, in the present embodiment, at the end of a one-step gait(the end of the current time gait), for example, the state amounts ofthe horizontal body position correcting perturbation model 202, the bodyposture inclination angle correcting perturbation model 203, and theantiphase arm swing angle correcting perturbation model 231, e.g., thehorizontal position of the body mass point (the inverted pendulum masspoint) of the horizontal body position correcting perturbation model202, the rotational angle of the flywheel of the body postureinclination angle correcting perturbation model 203, and the rotationalangle of the flywheel of the antiphase arm swing angle correctingperturbation model 231, are added as the state amount of the simplifiedmodel 200. In other words, the state amount of the simplified model 200at the end of the current time gait is corrected to the state amountobtained by adding the body motion of the horizontal body positioncorrecting perturbation model 202 and the state amounts of the bodyposture inclination angle correcting perturbation model 203 and theantiphase arm swing angle correcting perturbation model 231. Further,the state amount of each of the perturbation models 202, 203, and 231 isinitialized (e.g., the horizontal position of the body mass point (theinverted pendulum mass point) of the horizontal body position correctingperturbation model 202, the rotational angle of the flywheel of the bodyposture inclination angle correcting perturbation model 203, and therotational angle of the flywheel of the antiphase arm swing anglecorrecting perturbation model 231 are reset to zero). Then, a next timegait is generated, taking the state amount of the simplified model 200that has been corrected as described above as the initial value of thenext time gait, and the correcting perturbation model horizontal bodyposition Xc, the correcting perturbation model body posture inclinationangle θc, and the correcting perturbation model antiphase arm swingangle θca of the individual perturbation models 202, 203, and 231 arecalculated. This makes it possible to further enhance the stability ofthe behaviors of the individual perturbation models 202, 203, and 231.The state amounts of the simplified model 200 described above may becorrected as necessary while a gait is being generated. Conversely, thecorrection of the state amounts of the simplified model 200 or theresetting of the perturbation models described above may not be carriedout while a gait is being generated.

The aforesaid correction of state amounts of the simplified model 200will be implemented in the same manner in second and third embodiments,which will be discussed hereinafter.

The present embodiment satisfies all the restoring conditions except forthe aforementioned restoring condition 3). In this case, Mdmdz is notsupplied to the gait generating device 100 in the present embodiment, sothat restoring condition 3′) below is satisfied instead of restoringcondition 3).

Restoring condition 3′) A floor reaction force moment vertical componentof a corrected gait (this corresponds to a desired floor reaction forcemoment vertical component for compliance control) does not exceed afloor reaction force moment vertical component permissible range.

Furthermore, in addition to the operations and advantages of the thirdreference example, the calculation volume can be reduced to berelatively small when determining a horizontal body position, a bodyposture inclination angle, and an antiphase arm swing angle so as tosatisfy the aforementioned restoring conditions 1, 2, 3′, and 4 to 7.

The first embodiment explained above provides the embodiments of thefirst to the third inventions, the fifth to the eighth inventions, andthe eleventh to the thirteenth inventions. In this case, the floorreaction force moment vertical component in the first embodimentcorresponds to a control object amount. Further, the floor reactionforce moment vertical component permissible range [Mzmin, Mzmax] forgenerating a gait (for full-model correction) in the first embodimentcorresponds to the permissible range of the amount to be limited.Further, a motional component of a simplified model gait corresponds toa provisional instantaneous value of a desired motion, and theprovisional instantaneous value corrected in S3536 corresponds to theinstantaneous value of the desired motion. A full model (including anantiphase arm swing angle correcting perturbation model) corresponds tothe dynamic model in the invention. And the aforesaid antiphase armswing angle correcting perturbation model moment Ma corresponds to aperturbation model manipulated variable in the third invention and thecorrecting perturbation model antiphase arm swing angle θca correspondsto the correction amount of a desired motion in the third invention.Further, the corrected desired floor reaction force moment verticalcomponent without restriction Minz in the first embodiment correspondsto an estimated value of a restriction object amount in the seventhinvention, and the antiphase arm swing angle correcting modelstabilization moment Mafdmd corresponds to the required value of aperturbation model manipulated variable. The full-model floor reactionforce moment vertical component Mfullz in the first embodiment to whichthe floor reaction force moment vertical component Mpz resulting fromthe correction of a horizontal body position has been added correspondsto the instantaneous value of a model restriction object amount.

In the first embodiment, Mafdmd does not steadily become zero; however,if this is steadily set to zero, then an embodiment of the fourthinvention of the present invention will be constructed.

A second embodiment of the present invention will now be explained withreference to FIG. 72 and FIG. 73. The correcting technique of a deviceaccording to the second embodiment differs from that of the aforesaidfirst embodiment only in the processing of the gait generating device100 (the processing of S3536 of FIG. 66), and it is a full-modelfeedback correction type. It is a technique that uses an inverse dynamicfull model (inverse full model), does not correct an input of asimplified model gait, and uses a perturbation model.

FIG. 72 is a functional block diagram explaining an operation of thedevice according to the second embodiment, specifically, the gaitcorrecting technique of S3536 of the flowchart of FIG. 66. However, asimplified model 200 shown in FIG. 72 represents not only a dynamicmodel but also the processing from S3510 to S3532 of FIG. 66, i.e., theprocessing for calculating (determining) a simplified model gaitinstantaneous value, as in the case of the aforesaid first embodiment.Hence, in FIG. 72, the portion beyond the simplified model 200corresponds to the processing of S3536. Of the functional portions inFIG. 72, like functional portions as those in FIG. 67 according to thefirst embodiment will be assigned like reference marks in FIG. 67 anddetailed explanation thereof will be omitted.

Since the construction other than the processing of S3536 is the same asthat of the first embodiment, the explanation thereof will be omitted,and the following will explain the processing of S3536 in detail inconjunction with FIG. 72.

In S3536, first, as previously described, a correcting perturbationmodel horizontal body position Xc, which will be discussed later,calculated at the last time control cycle (time t−Δt) is added by acalculator 205 to an instantaneous value of a desired horizontal bodyposition of a simplified model gait determined in S3532 of FIG. 66,thereby determining a final desired horizontal body position (correcteddesired horizontal body position) Further, a correcting perturbationmodel body posture inclination angle θc, which will be discussed later,calculated at the last time control cycle (time t−Δt) is added by acalculator 204 to an instantaneous value (a provisional instantaneousvalue determined in the control cycle at current time t) of a desiredbody posture inclination angle of a simplified model gait determined inS3532 of FIG. 66, thereby determining a final desired body postureinclination angle (corrected desired body posture inclination angle).Further, a correcting perturbation model antiphase arm swing angle θca,which will be discussed later, calculated at the last time control cycle(time t−Δt) is added by a calculator 232 to an instantaneous value(provisional instantaneous value determined in the control cycle atcurrent time t) of a desired antiphase arm swing angle of a simplifiedmodel gait determined in S3532 of FIG. 66, thereby determining a finaldesired antiphase arm swing angle (corrected desired antiphase arm swingangle).

Then, these corrected desired horizontal body position, correcteddesired body posture inclination angle, and corrected desired antiphasearm swing angle are output as the final desired instantaneous values ofthe horizontal body position, the body posture inclination angle, andthe antiphase arm swing angle, respectively.

More specifically, the corrected desired horizontal body position, thecorrected desired body posture inclination angle, and the correcteddesired antiphase arm swing angle are determined according to theaforesaid Equation h24, Equation h25, and Equation h37.

Subsequently, the desired horizontal body position (the correcteddesired horizontal body position), the desired body posture inclinationangle (the corrected desired body posture inclination angle), and thedesired antiphase arm swing angle (the corrected desired antiphase armswing angle) obtained by correcting the simplified model gait asdescribed above, and the instantaneous values of the motional variables,such as the desired center-of-gravity position, the desired footposition/posture, and the desired arm posture, of the simplified modelgait obtained as previously described, and the instantaneous value ofthe desired ZMP are input to the aforesaid inverse dynamic full model201, and then the floor reaction force horizontal component and thefloor reaction force moment about the desired ZMP (a horizontalcomponent and a vertical component) that balance with the motionexpressed by the input motional variables (i.e., that are generated bythe inverse full model 201 by the motion) are calculated. Thus,according to the present embodiment, in addition to the simplified modelhorizontal body position, body posture inclination angle, and antiphasearm swing angle, the correcting perturbation model horizontal bodyposition Xc, the correcting perturbation model body posture inclinationangle θc, and a correcting perturbation model antiphase arm swing angleθca are also input to the inverse full model 201. Hereinafter, as in thefirst embodiment, the floor reaction force horizontal component, thefloor reaction force moment horizontal component, and the floor reactionforce moment vertical component calculated by the inverse full model 201will be referred to as a full-model floor reaction force horizontalcomponent Ffullxy, a full-model floor reaction force moment horizontalcomponent Mfullxy, and a full-model floor reaction force moment verticalcomponent Mfullz.

The full-model floor reaction force horizontal component Ffull is outputas a corrected desired floor reaction force horizontal component (afinal desired instantaneous value of the floor reaction force horizontalcomponent at the current time t).

More specifically, a corrected desired floor reaction force horizontalcomponent is determined according to the equation given below andoutput.Corrected desired floor reaction force horizontal component=Full-modelfloor reaction force horizontal component Ffull  Equation h48

As can be seen from the above processing, according to the presentembodiment, a full-model corrected gait is constituted by adding abehavior of the horizontal body position correcting perturbation model202, a behavior of the body posture inclination angle correctingperturbation model 203, and a behavior of the antiphase arm swing anglecorrecting perturbation model 231 to a simplified model gait. Further,the equation shown below holds, considering that the floor reactionforce horizontal component generated by the body inclination mode andthe floor reaction force horizontal component generated by the antiphasearm swing mode are both zero. However, a simplified model floor reactionforce horizontal component is the translational force horizontalcomponent of the floor reaction force generated by a motion of asimplified model gait, the floor reaction force being calculated usingthe inverse full model 201.Full-model floor reaction force horizontal component Ffull =Simplifiedmodel floor reaction force horizontal component +Horizontal bodyposition correcting perturbation model floor reaction force horizontalcomponent Fp  Equation h51

Subsequently, a required value Mpfdmd of horizontal body positioncorrecting perturbation model stabilization moment is determinedaccording to a horizontal body position correcting perturbation modelcontrol law 206. The horizontal body position correcting perturbationmodel control law 206 in the present embodiment is set as proposed bythe present applicant in Japanese Patent Application No. 2001-133621.For example, the control law 206 is determined according to thefollowing equation.Required value Mpfdmd of horizontal body position correctingperturbation model stabilization moment =Kpg*Difference in center ofgravity+Kvg* Correcting perturbation model horizontal body velocitydXc/dt  Equation h52

where the difference in center of gravity is determined according to thefollowing equation.Difference in center of gravity=Horizontal position of full-model centerof gravity−Horizontal position of simplified model center ofgravity  Equation h53

where Kpg and Kvg in Equation h52 denote the gains of a feedback controllaw, the horizontal position of full-model center of gravity, thehorizontal position of simplified model center of gravity, and thecorrecting perturbation model horizontal body velocity dXc/dt are thehorizontal position of the center of gravity of a full-model gaitinstantaneous value, the horizontal position of the center of gravity ofa simplified model gait instantaneous value (a center-of-gravityhorizontal position XGs calculated using a simplified model on the basisof an instantaneous posture of a simplified model gait), and acorrecting perturbation model horizontal body velocity dXc/dt,respectively, which are calculated last time (time t−Δt), as it will bediscussed later.

More specifically, a perturbation model control feedback amount(manipulated variable) is calculated on the basis of the difference incenter of gravity obtained by subtracting the center-of-gravityhorizontal position of a simplified model from the center-of-gravityhorizontal position of a full model and a perturbation model bodyvelocity, which is one of the state amounts of a perturbation model.Such a perturbation model control law makes it possible to control thetemporal average value of the difference in center of gravity tosubstantially zero.

Subsequently, a required value Mrfdmd of a body posture correctingperturbation model stabilization moment is determined according to abody posture inclination angle correcting perturbation model control law207. For this purpose, the same control law as that in the firstembodiment may be used. Thus, as the control law 207, the aforesaidEquation h11, for example, may be used.

Subsequently, a corrected desired floor reaction force moment withoutrestriction Min is determined (estimated) by a Min calculator 209. As inthe first embodiment, the corrected desired floor reaction force momentwithout restriction Min is the floor reaction force moment horizontalcomponent generated about a desired ZMP when a horizontal body positioncorrecting perturbation model stabilization moment Mpf is matched withthe required value Mpfdmd of horizontal body position correctingperturbation model stabilization moment, a body posture inclinationangle correcting perturbation model stabilization moment Mrf is matchedwith the required value Mrfdmd of body posture inclination anglecorrecting perturbation model stabilization moment, and a desired floorreaction force moment horizontal component for compliance control as adesired floor reaction force moment about a desired ZMP is matched withthe total sum of a compensating total floor reaction force momenthorizontal component Mdmdxy, Mpf, and Mrf, while ignoring the aforesaidrestriction (the ZMP restrictive condition and the floor reaction forcehorizontal component restrictive condition).

A corrected desired floor reaction force moment horizontal componentwithout restriction Min is determined by the calculation according tothe aforesaid Equation h13, as in the first embodiment. Morespecifically, the corrected desired floor reaction force momenthorizontal component without restriction Min is obtained by adding therequired value Mpfdmd of horizontal body position correctingperturbation model stabilization moment, the required value Mrfdmd ofbody posture inclination angle correcting perturbation modelstabilization moment, and the total sum of a compensating total floorreaction force moment horizontal component Mdmdxy.

Furthermore, a corrected desired floor reaction force horizontalcomponent without restriction Fin is also determined (estimated) by aFin calculator 210. As in the first embodiment, the corrected desiredfloor reaction force horizontal component without restriction Fin is thefloor reaction force horizontal component (corresponding to Ffull)generated by the inverted full model 201 when the horizontal bodyposition correcting perturbation model stabilization moment Mpf ismatched with the required value Mpfdmd of horizontal body positioncorrecting perturbation model stabilization moment, the body postureinclination angle correcting perturbation model stabilization moment Mrfis matched with the required value Mrfdmd of body posture inclinationangle correcting perturbation model stabilization moment, and thedesired floor reaction force moment horizontal component for compliancecontrol is matched with the total sum of the compensating total floorreaction force moment horizontal component Mdmdxy, Mpf, and Mrf, whileignoring the aforesaid restriction (the ZMP restrictive condition andthe floor reaction force horizontal component restrictive condition).

Unlike the first embodiment, the corrected desired floor reaction forcehorizontal component without restriction Fin is determined according tothe following equation.Corrected desired floor reaction force horizontal component withoutrestriction Fin =Full-model floor reaction force horizontal componentFfull +1/h*(Required value Mpfdmd of horizontal body position correctingperturbation model stabilization moment −Horizontal body positioncorrecting perturbation model stabilization moment Mpf)  Equation h54

where the horizontal body position correcting perturbation modelstabilization moment Mpf uses a last time value (the value at timet−Δt). More specifically, the difference between the required valueMpfdmd of horizontal body position correcting perturbation modelstabilization moment and the horizontal body position correctingperturbation model stabilization moment Mpf is determined, and theamount of an increase in a full-model floor reaction force horizontalcomponent Ffull resulting from increasing the input of the horizontalbody position correcting perturbation model by the above difference isestimated by dividing the above difference by a body translational modefloor reaction force ratio h. Further, the full-model floor reactionforce horizontal component Ffull is added thereto so as to estimate thecorrected desired floor reaction force horizontal component withoutrestriction Fin.

Subsequently, based on the corrected desired floor reaction force momenthorizontal component without restriction Min and the corrected desiredfloor reaction force horizontal component without restriction Fin, acorrected desired floor reaction force moment horizontal component withrestriction Mltd and a corrected desired floor reaction force horizontalcomponent with restriction Fltd (about a desired ZMP), which are thevalues that have added restriction thereto, are determined by arestricting means (restriction processing unit 211) similar to that inthe first embodiment such that the aforesaid restrictions (the ZMPrestrictive condition and the floor reaction force horizontal componentrestrictive condition) are satisfied. This processing technique is thesame as that in the first embodiment.

In the present embodiment also, the desired floor reaction force momenthorizontal component for compliance control is matched with thecorrected desired floor reaction force moment horizontal component withrestriction Mltd, and the corrected desired floor reaction forcehorizontal component substantially agrees with the corrected desiredfloor reaction force horizontal component with restriction Fltd;therefore, the desired floor reaction force moment horizontal componentfor compliance control and the corrected desired floor reaction forcehorizontal component substantially satisfy the ZMP restrictive conditionand the floor reaction force horizontal component restrictive conditionby determining the corrected desired floor reaction force momenthorizontal component with restriction Mltd and the corrected desiredfloor reaction force horizontal component with restriction Fltd asdescribed above.

Subsequently, the horizontal body position correcting perturbation modelstabilization moment Mpf is determined by an Mpf calculator 215. Moredetailedly, the value obtained by multiplying the value, which isobtained by subtracting the full-model floor reaction force horizontalcomponent Ffull from the corrected desired floor reaction forcehorizontal component with restriction Fltd, by the gain Kc is integratedby an integrator 215 a, and further, the obtained integrated value ismultiplied by the body translational mode floor reaction force ratio hto determine the horizontal body position correcting perturbation modelstabilization moment Mpf. In other words, the horizontal body positioncorrecting perturbation model stabilization moment Mpf is obtainedaccording to the following equation.Mpf=h*∫Kc(Fltd−Ffull)dt  Equation h55

Subsequently, by an Mrf calculator 214, the body posture inclinationangle correcting perturbation model stabilization moment Mrf isdetermined by subtracting the horizontal body position correctingperturbation model stabilization moment Mpf and the compensating totalfloor reaction force moment horizontal component Mdmdxy from thecorrected desired floor reaction force moment horizontal component withrestriction Mltd. In other words, the body posture inclination anglecorrecting perturbation model stabilization moment Mrf is obtainedaccording to the aforesaid Equation h21.

Furthermore, according to the aforesaid Equation h23, the body postureinclination angle correcting perturbation model floor reaction forcemoment Mr is determined. In other words, the body posture inclinationangle correcting perturbation model stabilization moment Mrf, which isan output of the Mrf calculator 214, is directly determined as the bodyposture inclination angle correcting perturbation model floor reactionforce moment Mr.

Subsequently, a full-model floor reaction force moment error Merrdefined by the following equation is calculated by a Merr calculator216.Full-model floor reaction force moment error Merr=Full-model floorreaction force moment horizontal component Mfullxy−Corrected desiredfloor reaction force moment horizontal component with restrictionMltd  Equation h56

Subsequently, an Mp calculator 217 determines the horizontal bodyposition correcting perturbation model floor reaction force moment Mpaccording to the following equation.Mp=Mpf−∫Km*Merr dt  Equation h57

This means that the value obtained by multiplying the full-model floorreaction force moment error Merr by an integration gain Km is integratedby the integrator 217 a, and the sign of the integrated value isreversed. Further, the output of the integrator 217 a is added to thehorizontal body position correcting perturbation model stabilizationmoment Mpf to determine the horizontal body position correctingperturbation model floor reaction force moment Mp.

Subsequently, the horizontal body position correcting perturbation modelfloor reaction force moment Mp is supplied to the body positioncorrecting perturbation model 202, and a correcting perturbation modelbody position Xc that balances with the supplied floor reaction forcemoment horizontal component is calculated.

In addition, the body posture inclination angle correcting perturbationmodel floor reaction force moment Mr is supplied to a body postureinclination angle correcting perturbation model 203, and the correctingperturbation model body posture inclination angle θc that balances withthe supplied floor reaction force moment horizontal component iscalculated.

The processing up to the above in S3536 is as per PCT/JP03/00435, sothat no further explanation will be given.

Further, in the present embodiment, an antiphase arm swing angle momentcorrecting perturbation model Ma is determined in the antiphase armswing angle correcting perturbation model moment determiner 230.

Furthermore, the antiphase arm swing angle correcting perturbation modelmoment Ma is input to an antiphase arm swing angle correctingperturbation model to determine a correcting perturbation modelantiphase arm swing angle θca.

The following will explain in detail the operation of the antiphase armswing angle correcting perturbation model moment determiner 230 inconjunction with FIG. 73, which is a functional block diagram thereof.

First, the required value Mafdmd of antiphase arm swing angle correctingperturbation model stabilization moment is determined according to anantiphase arm swing angle correcting perturbation model control law. Forthis purpose, the same control law as that in the first embodiment maybe used. Thus, as the control law, the aforesaid Equation h30, forexample, may be used.

Then, in a calculator 230 g, a corrected desired floor reaction forcemoment vertical component without restriction Minz is determined bysubtracting the last time value (an output of an integrator, which willbe discussed later) of the antiphase arm swing correcting perturbationmodel moment Ma from the sum of the full-model floor reaction forcemoment vertical component Mfullz and the required value Mafdmd ofantiphase arm swing angle correcting perturbation model stabilizationmoment. Then, in a restricting means (restriction processing unit) 230h, a restriction is added to the corrected desired floor reaction forcemoment vertical component without restriction Minz so that it does notexceed a floor reaction force vertical component moment permissiblerange (that is, passing it through a shown saturation characteristicfunction), thereby determining the corrected desired floor reactionforce moment vertical component with restriction Mltdz. Next, the valueobtained by subtracting the sum of the full-model floor reaction forcemoment vertical component Mfullz and the required value Mafdmd ofantiphase arm swing angle correcting perturbation model stabilizationmoment from the corrected desired floor reaction force moment verticalcomponent with restriction Mltdz is integrated by an integrator 230 iusing an integration gain Ka so as to determine the antiphase arm swingangle correcting perturbation model moment Ma, which is output. Inaddition, the corrected desired floor reaction force moment verticalcomponent with restriction Mltdz is output as the desired floor reactionforce moment vertical component for compliance control.

The antiphase arm swing angle correcting perturbation model moment Maand the desired floor reaction force moment vertical component forcompliance control are determined in the antiphase arm swing anglecorrecting perturbation model moment determiner 230 as described above.

The determined correcting perturbation model body position Xc, thecorrecting perturbation model body posture inclination angle θc, thecorrecting perturbation model antiphase arm swing angle θca, thehorizontal body position correcting perturbation model stabilizationmoment Mpf, and the antiphase arm swing angle correcting perturbationmodel moment Ma are used as the last time values at the next timecontrol cycle (time t+Δt) as previously described.

The rest of the construction and processing are the same as those of thefirst embodiment. According to the second embodiment, the sameoperations and advantages as those of the first embodiment can beobtained.

The second embodiment explained above provides the embodiments of thefirst to the third inventions and the fifth to the thirteenth inventionsin the present invention. In this case, the floor reaction force momentvertical component in the second embodiment corresponds to a controlobject amount. Further, the floor reaction force moment verticalcomponent permissible range [Mzmin, Mzmax] for generating a gait (forfull-model correction) in the second embodiment corresponds to thepermissible range of a restriction object amount. Further, a motionalcomponent of a simplified model gait corresponds to a provisionalinstantaneous value of a desired motion, and this provisionalinstantaneous value corrected in S3536 corresponds to the instantaneousvalue of the desired motion. In addition, a full model (including anantiphase arm swing angle correcting perturbation model) corresponds tothe dynamic model in the invention. And the aforesaid antiphase armswing angle correcting perturbation model moment Ma corresponds to aperturbation model manipulated variable in the third invention, and thecorrecting perturbation model antiphase arm swing angle θca correspondsto the correction amount of a desired motion in the third invention.Furthermore, the corrected desired floor reaction force moment verticalcomponent without restriction Minz in the second embodiment correspondsto an estimated value of a restriction object amount in the seventhinvention, and the antiphase arm swing angle correcting modelstabilization moment Mafdmd corresponds to a required value of aperturbation model manipulated variable. Further, the full-model floorreaction force moment vertical component Mfullz in the second embodimentcorresponds to the instantaneous value of a model restriction objectamount. In the second embodiment, the correction amount of a desiredmotion (correcting perturbation model antiphase arm swing angle θca) isadditionally supplied to a full model, which is a dynamic model, as inthe ninth invention.

In the second embodiment, Mafdmd does not steadily become zero; however,if this is steadily set to zero, then an embodiment of the fourthinvention in the present invention will be constructed.

A third embodiment according to the present invention will now beexplained with reference to FIG. 74 and FIG. 75. The third embodiment isbased on a technique that generates a gait while correcting the gait byusing a forward dynamic model (to be more precise, a pseudo forwarddynamic model) in place of the inverse dynamic full model (inverse fullmodel) 201 used in the aforementioned first and second embodiments.

FIG. 74 is a functional block diagram explaining an operation of adevice according to the third embodiment. As shown in FIG. 74, thepresent embodiment is provided with a pseudo forward full model (pseudoforward dynamic full model) 222.

The pseudo forward full model 222 receives the required value Mpfdmd ofhorizontal body position stabilization moment, the required value Mrfdmdof body posture inclination angle stabilization moment, the requiredvalue Mafdmd of antiphase arm swing angle stabilization moment, adesired ZMP, a desired floor reaction force vertical component, acompensating total floor reaction force moment horizontal componentMdmdxy, and the motional states of parts excluding a body 3, such asdesired foot position/posture and a desired arm posture, and outputs adesired vertical body position, a desired horizontal body position, adesired body posture inclination angle, a desired antiphase arm swingangle, a desired floor reaction force moment (a horizontal component anda vertical component) for compliance control as the desired floorreaction force moment about a desired ZMP, and a desired floor reactionforce horizontal component. A desired value input of the pseudo forwardfull model 222 is generated by a desired instantaneous value generator100 b on the basis of a gait parameter determined by a gait parameterdeterminer 100 a, as explained with reference to the aforesaid FIG. 64.

Specifically, the above pseudo forward full model 222 is represented bythe functional block diagram of FIG. 75, and the portion encircled by adashed line in FIG. 75 corresponds to the pseudo forward full model 222.In this functional block diagram, the same functional parts as those inFIG. 72 of the aforementioned second embodiment will use the samereference marks as those in FIG. 72.

A simplified model 200 in FIG. 75 represents not merely represents adynamic model, but it also represents the processing from S3510 to S3532of FIG. 66 described above, namely, the processing for calculating(determining) a simplified model gait instantaneous value. Further, inthe processing for calculating (determining) a current time gaitinstantaneous value (the gait instantaneous value of a simplified model)in S3532, as explained in the above first embodiment, the instantaneousvalue of a gait is generated, setting the model manipulation floorreaction force moment horizontal component about a desired ZMP to zero,then a perturbational motion of a body inclination mode that generates asimplified gait body posture inclination angle correcting moment Mr(last time value), which corresponds to the body posture inclinationangle correcting perturbation model moment Mr described in the firstembodiment, a perturbational motion of a body translational mode thatgenerates a simplified model horizontal body position correcting momentMp (last time value), which corresponds to the horizontal body positioncorrecting perturbation model moment Mp described in the firstembodiment, and a perturbational motion of an antiphase arm swing modethat generates a simplified model antiphase arm swing angle correctingmoment Ma (last time value), which corresponds to the antiphase armswing angle correcting perturbation model moment Ma described in thefirst embodiment are added thereto. Thus, the instantaneous value of agait output by the simplified model 200 is corrected.

To explain more specifically, in the processing of S3532 of FIG. 66 inthe present embodiment, the body horizontal acceleration obtained byadding, as a perturbational portion, a body horizontal acceleration(d2Xb/dt2) determined according to an equation in which the second termof the right side of the aforesaid Equation 03y is equal to Mp (lasttime value), namely, the equation of Mp=mb*(Zb−Zzmp)*(d2Xb/dt2), to thebody horizontal acceleration determined by the simplified model 200 isintegrated to the second order from the beginning of the current timegait to current time t, thereby determining the instantaneous value ofthe horizontal body position at the current time t in S3414 and S3416 ofFIG. 57, which constitute subroutine processing thereof. Furthermore, inS3414 of FIG. 57, the body posture inclination angular accelerationobtained by adding, as a perturbational portion, a body postureinclination angular acceleration (d2θby/dt2) determined according to anequation in which the seventh term of the right side of the aforesaidEquation 03y is equal to Mr (last time value), namely, the equation ofMr=J*d2θby/dt2, to the body posture inclination angular accelerationdetermined by the simplified model 200 is integrated to the second orderfrom the beginning of the current time gait to the current time t,thereby determining the instantaneous value of the body postureinclination angle at the current time t. Furthermore, in S3414 of FIG.57, the antiphase arm swing angular acceleration obtained by adding, asa perturbational portion, an antiphase arm swing angular acceleration(d2θaz/dt2) determined according to an equation in which the eighth termof the right side of the aforesaid Equation 03z is equal to Ma (lasttime value), namely, the equation of Ma=Jaz*d2θaz/dt2, to the antiphasearm swing angular acceleration determined by the simplified model 200 isintegrated to the second order from the beginning of the current timegait to the current time t, thereby determining the instantaneous valueof the antiphase arm swing angle at the current time t.

Supplementally, for the horizontal body position and the body postureinclination angle, the description has been given of the instantaneousvalues on a sagittal plane; however, the instantaneous values on alateral plane are also determined in the same manner.

In FIG. 75, the portion beyond the simplified model 200 is the portionthat carries out the processing that corresponds to the processing ofS3536. The processing in S3536 will be explained in detail inconjunction with FIG. 75.

In S3536, first, the horizontal body position a simplified model thathas been corrected on the basis of the simplified model horizontal bodyposition correcting moment Mp (to be specific, the last time value inthe control cycle at time (t−Δt)) as described above is output as adesired horizontal body position (a final desired instantaneous value ofthe horizontal body position at time t) in S3032. Furthermore, asimplified model body posture inclination angle that has been correctedon the basis of a simplified model body posture inclination anglecorrecting moment Mr (to be specific, the last time value in the controlcycle at time (t−Δt)) is output as a desired body posture inclinationangle (a final desired instantaneous value of the body postureinclination angle at time t). Furthermore, a simplified model antiphasearm swing angle that has been corrected on the basis of a simplifiedmodel antiphase arm swing angle correcting perturbation model moment Ma(to be specific, the last time value in the control cycle at time(t−Δt)) is output as a desired antiphase arm swing angle (a finaldesired instantaneous value of the antiphase arm swing angle at time t).

More specifically, the final desired horizontal body position anddesired body posture inclination angle are determined according toEquation h100, Equation h101, and Equation h102.Desired horizontal body position=Simplified model horizontal bodyposition  Equation h100Desired body posture inclination angle=Simplified model body postureinclination angle  Equation h101Desired antiphase arm swing angle=Simplified model antiphase arm swingangle  Equation h102

Subsequently, the desired horizontal body position (i.e., the simplifiedmodel horizontal body position), the desired body posture inclinationangle (i.e., the simplified model body posture inclination angle), thedesired antiphase arm swing angle (i.e., the simplified model antiphasearm swing angle), and the instantaneous values of the motion variables,such as the desired total center-of-gravity position, the desired footposition/posture, and the desired arm posture of the simplified modelgait, and the instantaneous value of the desired ZMP obtained asdescribed above are input to the aforesaid inverse dynamic full model(inverse full model) 201, and then a floor reaction force horizontalcomponent and a floor reaction force moment (a horizontal component anda vertical component) about the desired ZMP that balance with the motionrepresented by the input motional variables (i.e., the inverse fullmodel 201 is generated by the motion) are calculated. Thereafter, as inthe second embodiment, these calculated floor reaction force horizontalcomponent, the floor reaction force moment horizontal component, and thefloor reaction force moment vertical component will be referred to as afull-model floor reaction force horizontal component Ffull, thefull-model floor reaction force moment horizontal component Mfullxy, andthe floor reaction force moment vertical component Mfullz.

As in the second embodiment, the full-model floor reaction forcehorizontal component Ffull is output as a desired floor reaction forcehorizontal component (a final desired instantaneous value of the floorreaction force horizontal component at time t).

The present embodiment is not provided with a body posture inclinationangle correcting perturbation model, a horizontal body positioncorrecting perturbation model, and an antiphase arm swing anglecorrecting perturbation model. Therefore, the processing thatcorresponds to the horizontal body position correcting perturbationmodel control law, the body posture inclination angle correctingperturbation model control law, and the antiphase arm swing anglecorrecting perturbation model control law is different from that in thesecond embodiment, as it will be discussed later.

Except for this, after the aforesaid processing, the same processing asthat for determining the body posture inclination angle correctingperturbation model moment Mr, the horizontal body position correctingperturbation model moment Mp, and the antiphase arm swing anglecorrecting perturbation model moment Ma in the second embodiment iscarried out until the simplified model body posture inclination anglecorrecting moment Mr, the simplified model horizontal body positioncorrecting moment Mp, and the simplified model antiphase arm swing anglecorrecting moment Ma are determined. In other words, the processing of aMin calculator 209, a Fin calculator 210, a restriction processing unit211 (restricting means), an Mpf calculator 215, a Merr calculator 216,an Mrf calculator 217 (=Mr calculator), and an Mp calculator 214 is thesame as that in the second embodiment. Moreover, except for theprocessing that corresponds to the antiphase arm swing angle correctingperturbation model control law, the processing of a simplified modelantiphase arm swing angle correcting moment determiner 230 is identicalto the processing of the antiphase arm swing angle correctingperturbation model moment determiner 230 in the second embodiment. Inthe present embodiment, Mr, Mp and Ma correspond to the body postureinclination angle correcting perturbation model moment Mr, thehorizontal body position correcting perturbation model moment Mp, andthe antiphase arm swing angle correcting perturbation model moment Ma,respectively, in the second embodiment; however, unlike the secondembodiment, they are input to the simplified model 200 rather than beinginput to a perturbation model. For this reason, the Mr, Mp and Ma arereferred to as the simplified model body posture inclination anglecorrecting moment, the simplified model horizontal body positioncorrecting moment, and the simplified model antiphase arm swing anglecorrecting moment.

The simplified model body posture inclination angle correcting momentMr, the simplified model horizontal body position correcting moment Mp,and the simplified model antiphase arm swing angle correcting moment Madetermined as described above are used as last time values whendetermining (generating) simplified model gait instantaneous values atthe next time control cycle (time t+Δt), as previously described.

The rest of the construction and processing is the same as that of thesecond embodiment.

The following will explain the processing for determining the requiredvalue Mrfdmd of body posture inclination angle stabilization moment, therequired value Mpfdmd of horizontal body position stabilization moment,and the required value Mafdmd of antiphase arm swing angle stabilizationmoment with reference to FIG. 74.

As shown in FIG. 74, the present embodiment is provided with asimplified model 223 separate from the simplified model 200 provided inthe pseudo forward full model 222, as previously mentioned. The functionof the simplified model 223 in the present embodiment is identical tothat of the aforesaid simplified model 200, and the simplified model 223represents not only a dynamic model but also the processing from S3510to S3532 of FIG. 66 described above, i.e., the processing forcalculating (determining) simplified model gait instantaneous values.The simplified model 223, in actual operation, does not necessarily haveto perform all processing from S3510 to S3532 of FIG. 66, as long as itis capable of determining the instantaneous values of body postureinclination angles and the instantaneous values of horizontal bodypositions.

The following will explain in detail the processing for determiningMpfdmd and Mrfdmd in the present embodiment in conjunction with FIG. 74.

In the present embodiment, the differences in the horizontal bodyposition, the body posture inclination angle, and the antiphase armswing angle between the gaits generated using the simplified model 223and the gaits calculated as described above using the aforesaid pseudoforward dynamic full model 222 are determined by calculators 224, 225and 228. Then, based on these differences, the required value Mpfdmd ofhorizontal body position stabilization moment, the required value Mrfdmdof body posture inclination angle stabilization moment, and the requiredvalue Mafdmd of antiphase arm swing angle stabilization moment aredetermined by a feedback control law, such as PID, so as to converge thedifferences to zero. More specifically, Mpfdmd is determined by ahorizontal body position stabilization control law 226 composed of afeedback control law on the basis of the difference between thehorizontal body position by the simplified model 223 and the horizontalbody position by the pseudo forward full model 222. Further, Mrfdmd isdetermined by a body posture inclination angle stabilization control law227 composed of a feedback control law on the basis of the differencebetween the body posture inclination angle by the simplified model 223and the body posture inclination angle by the pseudo forward full model222. Further, Mafdmd is determined by an antiphase arm swing anglestabilization control law composed of a feedback control law on thebasis of the difference between the antiphase arm swing angle by thesimplified model 223 and the antiphase arm swing angle by the pseudoforward full model 222. Then, the determined Mpfdmd, Mrfdmd and Mafdmdare fed back and input to the aforesaid pseudo forward dynamic fullmodel.

In the present embodiment, the gait generating device 100 outputs, asthe final desired instantaneous values of a current time gait, a desiredZMP, a desired floor reaction force vertical component, desired footposition/posture, and a desired arm posture or the like, which are someof inputs to the aforesaid pseudo forward dynamic full model 222, and adesired vertical body position, a desired horizontal body position, adesired body posture inclination angle, a desired antiphase arm swingangle, a desired floor reaction force horizontal component, and adesired floor reaction force moment (a horizontal component and avertical component) for compliance control, which are outputs from theaforesaid pseudo forward dynamic full model 222.

The third embodiment explained above is capable of providing theoperations and advantages similar to those of the aforementioned secondembodiment.

In the aforementioned third embodiment, the required value Mrfdmd ofbody posture inclination angle stabilization moment, the required valueMpfdmd of horizontal body position stabilization moment, and therequired value Mafdmd of antiphase arm swing angle stabilization momenthave been input only to the pseudo forward full model 222.Alternatively, however, Mrfdmd, Mpfdmd and Mafdmd may be input to thesimplified model 223 or they may be divided and supplied to thesimplified model 223 and the pseudo forward full model 222.

The third embodiment explained above is the embodiment of twenty-seventhto thirtieth inventions in the present invention. In this case, thefloor reaction force moment vertical component in the third embodimentcorresponds to a control object amount. The floor reaction force momentvertical component permissible range [Mzmin, Mzmax] for generating gaits(for full-model correction) in the third embodiment corresponds to thepermissible range of a restriction object amount. A motional componentof a simplified model gait corresponds to a provisional instantaneousvalue of a desired motion, and the result of correcting this in S3536corresponds to the instantaneous value of the desired motion. Thesimplified model 223 and the pseudo forward full model 222 shown in FIG.74 correspond to a first dynamic model and a second dynamic model in thetwenty-seventh invention. The simplified model in FIG. 12, the inversefull model in FIG. 75, and the simplified model 223 in FIG. 74correspond to a first dynamic model, a second dynamic model, and a thirddynamic model, respectively, in the thirtieth invention. The antiphasearm swing angle stabilization moment Mafdmd in the third embodimentcorresponds to the manipulated variable of the floor reaction forcemoment in the twenty-seventh invention, and this is additionally inputto a full model (a pseudo forward full model).

A fourth embodiment of the present invention will now be explained withreference to FIG. 76. FIG. 76 is a functional block diagram illustratingthe operation of a device according to the fourth embodiment of thepresent invention, specifically, a gait correcting technique in S3536 ofthe flowchart of FIG. 66. Incidentally, in FIG. 76, the same functionalparts as those in the first embodiment or the second embodiment will usethe same reference marks as those in FIG. 67 or FIG. 72.

The fourth embodiment is provided with a horizontal body positioncorrecting perturbation model 202, a body posture inclination anglecorrecting perturbation model 203, and an antiphase arm swing anglecorrecting perturbation model 231. The fourth embodiment is providedalso with three distributors 220, 221, and 241.

The distributors 220, 221, and 241 are all defined as 1-input, 2-outputtransmission blocks, and they are transmission blocks that determine oneoutput on the basis of an input (e.g., signal processing of a frequencycharacteristic, a dead-zone characteristic, a saturation characteristic,or the like is carried out on an input to determine one output) anddetermine the other output such that the sum of the two outputs agreesor substantially agrees with the input.

A body posture inclination angle correcting moment Mr, which is thevalue (an output of an Mr calculator 214) obtained by subtracting ahorizontal body position correcting perturbation model stabilizationmoment Mpf and a compensating total floor reaction force momenthorizontal component Mdmdxy from a corrected desired floor reactionforce moment horizontal component with restriction Mltdxy, is suppliedto the distributor 220, and divided into a body posture inclinationangle correcting perturbation model input Mri to be supplied to the bodyposture inclination angle correcting perturbation model 203 and asimplified model body posture inclination angle correcting moment Mrs tobe supplied to the simplified model 200. At this time, the body postureinclination angle correcting perturbation model input Mri and thesimplified model body posture inclination angle correcting moment Mrsare determined (output) such that the sum of the body postureinclination angle correcting perturbation model input Mri and thesimplified model body posture inclination angle correcting moment Mrsagrees with the body posture inclination angle correcting moment Mr.

To be more specific, the body posture inclination angle correctingperturbation model input Mri is determined on the basis of the bodyposture inclination angle correcting moment Mr. For example, the bodyposture inclination angle correcting moment Mr is subjected to theprocessing of signals having a dead-zone characteristic, a saturationcharacteristic or a frequency characteristic so as to determine bodyposture inclination angle correcting perturbation model input Mri. Theresult obtained by subtracting the body posture inclination anglecorrecting perturbation model input Mri from the body postureinclination angle correcting moment Mr is determined as the simplifiedmodel body posture inclination angle correcting moment Mrs. To explainmore specifically, in the present embodiment, the distributor 220outputs a low-frequency component (DC component), which is obtained bypassing an input (Body posture inclination angle correcting momentMr=Mltd−Mpf−Mdmdxy) through a low-pass filter, as a simplified modelbody posture inclination angle correcting moment Mrs, and also outputsthe component obtained by subtracting Mrs from the input (body postureinclination angle correcting moment Mr) as the body posture inclinationangle correcting perturbation model input Mri. In this case, thedead-zone characteristic is imparted to the simplified model bodyposture inclination angle correcting moment Mrs, which is thelow-frequency component (DC component), such that, in a state wherein anoutput of the low-pass filter lies within a predetermined rangecentering around a certain predetermined value, the Mrs is maintained atthat predetermined value (e.g., zero).

The body posture inclination angle correcting perturbation model inputMri, which is an output of the distributor 220, is supplied to the bodyposture inclination angle correcting perturbation model 203, and acorrecting perturbation model body posture inclination angle θc isdetermined by the body posture inclination angle correcting perturbationmodel 203.

The simplified model body posture inclination angle correcting momentMrs, which is the other output of the distributor 220, is supplied tothe simplified model 200. This corresponds to supplying the simplifiedmodel body posture inclination angle correcting moment Mr to thesimplified model 200 in FIG. 75 in the aforementioned third embodiment.

The distributor 221 receives a value obtained by integrating the value,which is obtained by multiplying a full-model floor reaction forcemoment horizontal component error Merr by a gain Km, by an integrator217 a and reversing the sign thereof.

An input to the distributor 221 is divided into a simplified modelhorizontal body position correcting moment Mps to be supplied to thesimplified model 200 and an error correcting moment Me to be supplied toa horizontal body position correcting perturbation model 202, as in thecase of the distributor 220. To be more specific, an error correctingmoment Me is determined on the basis of an output of the integrator 217a. For instance, the error correcting moment Me is determined bysubjecting an output of the integrator 217 a (an input of thedistributor 220) to the processing of signals having a dead-zonecharacteristic, a saturation characteristic or a frequencycharacteristic. The result obtained by subtracting the error correctingmoment Me from an output of the integrator 217 a is determined as thesimplified model body posture inclination angle correcting moment Mrs.To explain more specifically, in the present embodiment, the distributor221 outputs a low-frequency component (DC component), which is obtainedby passing an input (an output of the integrator 217 a) through alow-pass filter, as a simplified model horizontal body positioncorrecting moment Mps, and also outputs the component obtained bysubtracting Mps from the input (the output of the integrator 217 a) asthe error correcting moment Me. In this case, the dead-zonecharacteristic is imparted to the simplified model horizontal bodyposition correcting moment Mps, which is the low-frequency component (DCcomponent), such that, in a state wherein an output of the low-passfilter lies within a predetermined range centering around a certainpredetermined value, the Mps is maintained at that predetermined value(e.g., zero).

The horizontal body position correcting perturbation model moment Mp isdetermined by adding a horizontal body position correcting modelstabilization moment Mpf to the error correcting moment Me, which is anoutput of the distributor 221, by an Mp calculator 217 b. Then, thehorizontal body position correcting perturbation model moment Mp issupplied to the horizontal body position correcting perturbation model202, and the correcting perturbation model horizontal body position Xcis determined by the horizontal body position correcting perturbationmodel 202.

The simplified model horizontal body position correcting moment Mps,which is the other output of the distributor 221, is supplied to thesimplified model 200. This is equivalent to supplying the simplifiedmodel horizontal body position correcting moment Mp to the simplifiedmodel 200 in FIG. 75 of the aforementioned third embodiment.

An antiphase arm swing angle correcting perturbation model momentdeterminer 230 is identical to the antiphase arm swing angle correctingperturbation model moment determiner shown in FIG. 73 used in the secondembodiment. However, the antiphase arm swing angle correctingperturbation model moment Ma, which is an output shown in FIG. 73, issupplied to the distributor 241 rather than being directly supplied tothe antiphase arm swing angle correcting perturbation model 231. In thepresent embodiment, therefore, the designation of the antiphase armswing angle correcting perturbation model moment Ma is modified to theantiphase arm swing angle correcting model moment Ma.

The distributor 241 receives, as an input, the antiphase arm swing anglecorrecting model moment Ma determined by the antiphase arm swing anglecorrecting perturbation model moment determiner 230.

As in the case of the distributor 220, an input to the distributor 241is divided into a simplified model antiphase arm swing angle correctingmoment Mas to be supplied to the simplified model 200 and an antiphasearm swing angle correcting perturbation model input Mai to be suppliedto the antiphase arm swing angle correcting perturbation model 231.

At this time, the antiphase arm swing angle correcting perturbationmodel input Mai and the simplified model antiphase arm swing anglecorrecting moment Mas are determined (output) such that the sum of theantiphase arm swing angle correcting perturbation model input Mai andthe simplified model antiphase arm swing angle correcting moment Masagrees with the antiphase arm swing angle correcting model moment Ma.

To be more specific, antiphase arm swing angle correcting perturbationmodel input Mai is determined on the basis of the antiphase arm swingangle correcting model moment Ma. For example, the antiphase arm swingangle correcting model moment Ma is subjected to the processing ofsignals having a dead-zone characteristic, a saturation characteristicor a frequency characteristic so as to determine antiphase arm swingangle correcting perturbation model input Mai. The result obtained bysubtracting the antiphase arm swing angle correcting perturbation modelinput Mai from the antiphase arm swing angle correcting model moment Mais determined as the simplified model antiphase arm swing anglecorrecting moment Mas. To explain more specifically, in the presentembodiment, the distributor 241 outputs a low-frequency component (DCcomponent), which is obtained by passing an input (the antiphase armswing angle correcting model moment Ma) through a low-pass filter, as asimplified model antiphase arm swing angle correcting moment Mas, andalso outputs the component obtained by subtracting the Mas from theinput (antiphase arm swing angle correcting model moment Ma) as theantiphase arm swing angle correcting perturbation model input Mai.

In this case, the dead-zone characteristic is imparted to the simplifiedmodel antiphase arm swing angle correcting moment Mas, which is thelow-frequency component (DC component), such that, in a state wherein anoutput of the low-pass filter lies within a predetermined rangecentering around a certain predetermined value, the Mas is maintained atthat predetermined value (e.g., zero).

The antiphase arm swing angle correcting perturbation model input Mai,which is an output of the distributor 241, is supplied to the antiphasearm swing angle correcting perturbation model 231, and a correctingperturbation model antiphase arm swing angle θca is determined by theantiphase arm swing angle correcting perturbation model 231.

The simplified model antiphase arm swing angle correcting moment Mas,which is the other output of the distributor 241, is supplied to thesimplified model 200. This corresponds to supplying the simplified modelantiphase arm swing angle correcting moment Ma to the simplified model200 in FIG. 75 in the aforementioned third embodiment.

As in the aforesaid third embodiment, the simplified model 200 generatesthe instantaneous value of a gait such that no floor reaction forcemoment horizontal component is generated about a desired ZMP (settingthe model manipulation floor reaction force moment to zero) in theprocessing for calculating (determining) the instantaneous value of asimplified model gait, adds a perturbational motion of a bodyinclination mode that generates a simplified model body postureinclination angle correcting moment Mrs (last time value), adds aperturbational motion of a body translational mode that generates asimplified model horizontal body position correcting moment Mps (lasttime value), and further adds a perturbational motion of an antiphasearm swing mode that generates the simplified model antiphase arm swingangle correcting moment Mas, thereby correcting the instantaneous valueof the gait.

In the present embodiment, in S800 of FIG. 43, which is a part of theprocessing of S3528 of FIG. 66, the state amount of a simplified modelat the end of the last time gait is used as the terminal state of thelast time gait. Therefore, if there is a moment when Mrs, Mps and Masoutput to a simplified model from the distributors 220, 221, and 241take values other than zero, then the behavior of the simplified modeldeviates from its original behavior, so that gait parameters arecorrected accordingly as necessary in S3528. As the aforesaid dead-zonearea is set to be wider, then the absolute values of Mrs, Mps, and Masbecome smaller, so that the absolute values of the correction amounts ofthe gait parameters become also smaller.

The rest of the construction and processing are the same as those of thesecond embodiment. More detailedly, the processing of calculators 204and 205, a calculator for calculating a desired horizontal bodyposition, a Merr calculator 216, a body posture inclination anglecorrecting perturbation model control law 207, a horizontal bodyposition correcting perturbation model control law 206, a Min calculator209, a Fin calculator 210, a restriction processing unit 211, an Mpfcalculator 215, and an antiphase arm swing angle correcting perturbationmodel moment determiner 240 is the same as that of the aforementionedsecond embodiment.

In the present embodiment, it is not necessary to carry out theprocessing for correcting the state amount of the simplified model 200on the basis of the state amounts of the perturbation models 202, 203,and 231 at the end of a current time gait or the like as explained inthe aforesaid first embodiment. This is because the simplified modelbody posture inclination angle correcting moment Mrs, the simplifiedmodel horizontal body position correcting moment Mps, and the simplifiedmodel antiphase arm swing angle correcting moment Mas are additionallysupplied from the distributors 220, 221, and 241.

In the present embodiment described above is capable of providing theoperations and advantages similar to those of the aforesaid secondembodiment or the third embodiment.

In the present embodiment, one of the two outputs of each of thedistributors 220, 221, and 241 may be set to zero, while the other ismatched with an input.

In this case, if, for example, the simplified model body postureinclination angle correcting moment Mrs, which is an output of thedistributor 220, is set to zero, the simplified model horizontal bodyposition correcting moment Mps, which is an output of the distributor221, is set to zero, and the simplified model antiphase arm swing anglecorrecting moment Mas, which is an output of the distributor 241, is setto zero, then the same operations and advantages of the secondembodiment will be provided (actually, the same construction as that ofthe second embodiment will be provided).

Alternatively, the value obtained by adding the horizontal body positioncorrecting model stabilization moment Mpf to the error correcting momentMe may be supplied to a third distributor, not shown, and one of theoutputs thereof may be supplied to the horizontal body positioncorrecting perturbation model, while the other output may be added tothe simplified model horizontal body position correcting moment Mps. Inthis case, the simplified model horizontal body position correctingmoment Mps, which is an output of the distributor 221, may be set tozero. In other words, the distributor 221 may be omitted, and the valueobtained by multiplying the full-model floor reaction force moment errorMerr by the gain Km may be integrated. The sign of the integrated valuemay be reversed and added to the horizontal body position correctingmodel stabilization moment Mpf, and the resulting value may be suppliedto the third distributor.

The fourth embodiment explained above is the embodiment of first tothird inventions, fifth to fifteenth inventions, seventeenth totwenty-fourth inventions, and a twenty-sixth invention in the presentinvention. In this case, the floor reaction force moment verticalcomponent in the fourth embodiment corresponds to a control objectamount. A floor reaction force moment vertical component permissiblerange [Mzmin, Mzmax] for generating gaits (for full-model correction) inthe fourth embodiment corresponds to the permissible range of arestriction object amount. A motional component of a simplified modelgait corresponds to a provisional instantaneous value of a desiredmotion, and the result of correcting this in S3536 corresponds to theinstantaneous value of the desired motion. A full model corresponds tothe dynamic model in the first to the third inventions and the fifth tothe fourteenth inventions. The simplified model and the full model ofFIG. 12 correspond to the first dynamic model and the second dynamicmodel in the fifteenth invention, the seventeenth to the twenty-fourthinventions, and the twenty-sixth invention. And, Mai in the antiphasearm swing angle correcting moment Ma corresponds to the perturbationmodel manipulated variable in the third invention, and the correctingperturbation model antiphase arm swing angle θca corresponds to thecorrection amount of a desired motion in the third invention.Furthermore, a corrected desired floor reaction force moment verticalcomponent without restriction Minz in the fourth embodiment correspondsto the estimated value of a restriction object amount in the seventhinvention, and the antiphase arm swing angle correcting modelstabilization moment Mafdmd corresponds to the required value of aperturbation model manipulated variable. Furthermore, the full-modelfloor reaction force moment vertical component Mfullz in the fourthembodiment corresponds to the instantaneous value of a model restrictionobject amount. In the fourth embodiment, the correction amount (thecorrecting perturbation model antiphase arm swing angle θca) of adesired motion is additionally supplied to a full model, which is adynamic model, as in the ninth invention.

The antiphase arm swing angle correcting moment Ma corresponds to themanipulated variable of a floor reaction force moment in the nineteenthinvention, and the simplified model antiphase arm swing angle correctingmoment Mas in the Ma corresponds to the floor reaction force momentcorrection amount in the fourteenth invention, and Mai corresponds tothe perturbation model manipulated variable in the nineteenth invention.Further, the required value Mafdmd of the antiphase arm swing anglecorrecting model stabilization moment in the fourth embodimentcorresponds to the required value of a floor reaction force momentmanipulated variable, and the correcting perturbation model antiphasearm swing angle θca corresponds to the correction amount of a desiredmotion in the eighteenth invention. Furthermore, a corrected desiredfloor reaction force moment vertical component without restriction Minzin the fourth embodiment corresponds to the estimated value of arestriction object amount in the twenty-sixth invention, and theantiphase arm swing angle correcting model stabilization moment Mafdmdcorresponds to the required value of a perturbation model manipulatedvariable. Furthermore, the full-model floor reaction force momentvertical component Mfullz in the fourth embodiment corresponds to theinstantaneous value of a model restriction object amount. In the fourthembodiment, the correction amount (the correcting perturbation modelantiphase arm swing angle θca) of a desired motion is additionallysupplied to a full model, which is a dynamic model, as in the eighteenthinvention.

In the aforesaid fourth embodiment, Mafdmd does not steadily becomezero, but if this is steadily set to zero, then it constitutes theembodiment of the fourth invention, the sixteenth invention, and thetwenty-fifth invention in the present invention.

In the first to the fourth embodiments explained above, the compensatingtotal floor reaction force moment horizontal component Mdmdxy may bedetermined on the basis of the state amounts of other postures of therobot 1, such as total center-of-gravity horizontal position/velocity,in place of the body posture angle/angular velocity.

A fourth reference example related to the present invention will now beexplained with reference to FIG. 77 to FIG. 84. This fourth referenceexample is related to a fifth embodiment of the present invention, whichwill be discussed hereinafter.

The functional block diagram of a control unit 60 in the fourthreference example is shown in FIG. 77. In the present embodiment, thesame constituent parts or the same functional parts as those of theaforesaid third reference example will be assigned the same referencemarks as those of the third reference example.

In comparison with the third reference example (refer to FIG. 59), thefourth reference example has added thereto a slippage determiner 114that determines the presence of slippage of an actual robot 1. Aslippage determination result output from the slippage determiner 114 issupplied to a gait generating device 100. The gait generating device 100narrows a floor reaction force horizontal component permissible rangeand a floor reaction force moment vertical component permissible rangethat are determined on the basis of gait parameters if a slippagedetermination result indicates the presence of a slippage. If a slippagedetermination result indicates the absence of a slippage, then the gaitgenerating device 100 restores the floor reaction force horizontalcomponent permissible range and the floor reaction force moment verticalcomponent permissible range that are determined on the basis of gaitparameters. The rest of the construction and processing are the same asthose of the aforesaid third reference example.

The slippage determiner 114 will be explained in detail in conjunctionwith FIG. 80, which is a flowchart illustrating the processing thereof.First, a spin determining subroutine is implemented in S5210. The spindetermining subroutine proceeds to S5310 of FIG. 81, which is theflowchart thereof, to determine a ground angular velocity verticalcomponent ωsupz of a supporting leg foot 22 on the basis of an actualbody posture angular velocity and a joint angle command (detectionvalue). Then, the processing proceeds to S5312 wherein a changing ratedMsupactz/dt of a supporting leg floor reaction force moment verticalcomponent, which is the temporal changing rate of an actual floorreaction force moment vertical component acting on the supporting leg isdetermined on the basis of a detection value (actual floor reactionforce) of a 6-axis force sensor 50 of the foot 22. Next, the processingproceeds to S5314 wherein it is determined whether the absolute value ofthe ground angular velocity vertical component ωsupz of the supportingleg foot 22 exceeds a predetermined value ωe. If the absolute valueexceeds it, then the processing proceeds to S5316 wherein the changingrate dMsupactz/dt of the supporting leg floor reaction force momentvertical component is divided by the aforesaid ground angular velocityvertical component ωsupz of the supporting leg foot, and the sign of theobtained value is reversed to determine an apparent torsion springconstant Ksupt of the supporting leg. Then, the processing proceeds toS5318 wherein it is determined whether Ksupt is smaller than apredetermined value Ksuptmin, and if it is smaller, then the processingproceeds to S5320 wherein the presence of a spin is determined as a spindetermination result, or if it is not, then the processing proceeds toS5322 wherein the absence of a spin is determined as the spindetermination result. Furthermore, if it is determined in S5314 that theabsolute value of the ground angular velocity vertical component ωsupzof the supporting leg foot does not exceed the aforesaid predeterminedvalue ωe, then the processing proceeds to S5324 wherein the absence of aspin is determined as a spin determination result. Determining thepresence of a spin as described above makes it possible to avoid such asituation wherein the presence of a spin is erroneously determined whenthe absolute value of ωsupz exceeds the predetermined value ωe due toflexure (elastic deformation) of the foot 22 or the like.

After finishing the processing of S5210 as described above, theprocessing proceeds to S5212 wherein a translational slippagedetermining subroutine is implemented.

The translational slippage determining subroutine proceeds to S5410 ofFIG. 82, which is the flowchart thereof, to determine a groundtranslational velocity horizontal component Vsupxy of a supporting legfoot 22 on the basis of an actual body posture angular velocity, anacceleration detection value, and a joint angle command (detectionvalue). Then, the processing proceeds to S5412 wherein a changing ratedFsupactxy/dt of a supporting leg floor reaction force horizontalcomponent, which is the temporal changing rate of an actual floorreaction force horizontal component acting on the supporting leg isdetermined on the basis of a detection value (actual floor reactionforce) of the 6-axis force sensor 50 of the foot 22. Next, theprocessing proceeds to S5414 wherein it is determined whether theabsolute value of the ground translational velocity horizontal componentVsupxy of the supporting leg foot exceeds a predetermined value Ve. Ifthe absolute value exceeds it, then the processing proceeds to S5416wherein the changing rate dFsupactxy/dt of the supporting leg floorreaction force horizontal component is divided by the aforesaid groundtranslational velocity horizontal component Vsupxy of the supporting legfoot 22, and the sign of the obtained value is reversed to determine anapparent shear spring constant Ksups (=(−dFsupactxy/dt)/Vsupxy) of thesupporting leg. Then, the processing proceeds to S5418 wherein it isdetermined whether Ksups is smaller than a predetermined value Ksupsmin,and if it is smaller, then the processing proceeds to S5420 wherein thepresence of a translational slippage is determined as a translationalslippage determination result, or if it is not, then the processingproceeds to S5422 wherein the absence of a translational slippage isdetermined as the translational slippage determination result.Furthermore, if it is determined in S5414 that the absolute value of theground translational velocity horizontal component Vsupxy of thesupporting leg foot does not exceed the aforesaid predetermined valueVe, then the processing proceeds to S5424 wherein the absence of atranslational slippage is determined as a translational slippagedetermination result. Determining the presence of a translationalslippage as described above makes it possible to avoid such a situationwherein the presence of a translational slippage is erroneouslydetermined when the absolute value of Ksups exceeds the predeterminedvalue Ksupsmin due to flexure (elastic deformation) of the foot 22 orthe like.

After finishing the processing of S5212 as described above, theprocessing proceeds to S5214 wherein a slippage vibration determiningsubroutine is implemented.

The slippage vibration determining subroutine proceeds to S5510 of FIG.83, which is the flowchart thereof, and passes the detection value (atranslational force horizontal component and/or a moment verticalcomponent) of the 6-axis force sensor 50 of the foot 22 through aband-pass filter to extract a slippage vibration component. Instead ofusing the detection value of the 6-axis force sensor 50 of the foot 22,the foot 22 may be provided with a yaw rate sensor, an accelerationsensor or the like to use the detection values thereof. The passingfrequency band of the band-pass filter is preset according to thematerial or the like of the sole of the foot 22 and a floor surface.Then, the processing proceeds to S5512 wherein it is determined whetherthe absolute value of the size of the detected slippage vibrationcomponent exceeds a certain predetermined value Ampe. If the absolutevalue exceeds the predetermined value, then the processing proceeds toS5514 wherein a slippage vibration determination result that indicatesthe presence of a slippage vibration is given. If the absolute valuedoes not exceed it, then the processing proceeds to S5516 wherein aslippage vibration determination result that indicates the absence of aslippage vibration is given.

After finishing the processing of S5214 as described above, theprocessing proceeds S5216, and if a spin determination result indicatesthe presence of a spin, or if a translational slippage determinationresult indicates the presence of a translational slippage, or if aslippage vibration determination result indicates the presence of aslippage vibration, then the processing proceeds to S5218 wherein aslippage determination result, which is an overall determination result,is given to indicate the presence of a slippage. If not, then theprocessing proceeds to S5220 wherein the slippage determination result,which is the overall determination result, is given to indicate theabsence of a slippage. This completes the processing of the slippagedeterminer 114.

FIG. 78 shows the flowchart of the main routine processing of the gaitgenerating device 100 in the fourth reference example.

In this FIG. 78, from S2310 to S2332, the same processing as that fromS2010 to S2032 of the flowchart (FIG. 60) of the third reference exampleis carried out.

Subsequently, the processing proceeds to S2334 wherein a subroutine fordetermining a corrected gait instantaneous value is implemented.

In the fourth reference example, a corrected gait instantaneous valuedetermining subroutine determines a corrected gait instantaneous valuesuch that a desired ZMP and an antiphase arm swing restoring angularacceleration pattern are corrected so as to approximate them to anoriginal gait, and also a model manipulation floor reaction force moment(a horizontal component and a vertical component) is additionallygenerated about a corrected desired ZMP. The floor reaction forcepermissible range is changed according to a slippage determinationresult. This aspect is different from the third reference example.

FIG. 79 shows the flowchart of the corrected gait instantaneous valuedetermining subroutine. In the corrected gait instantaneous valuedetermining subroutine, the processing from S5100 to S5114 is firstcarried out in the same manner as that from S2100 to S2112 of FIG. 61,which is the corrected gait instantaneous value determining subroutineof the third reference example. Then, the processing proceeds to S5116wherein it determines whether the slippage determination result by theaforesaid slippage determiner 114 indicates the presence of a slippage,and if the slippage determination result indicates the presence of aslippage, then the processing proceeds to S5118 wherein a permissiblerange reducing rate att is gradually approximated to zero (decreasedsubstantially continuously). Incidentally, the permissible rangereducing rate is to take a value from 0 to 1. If it is determined inS5116 that the slippage determination result indicates no slippage, thenthe processing proceeds to S5120 wherein the permissible range reducingrate att is gradually approximated to 1 (increased substantiallycontinuously).

Subsequently, the processing proceeds to S5122 wherein Fxmin, Fxmax,Mzmin and Mzmax, which are the upper limit values and the lower limitvalues of the permissible ranges of the floor reaction force horizontalcomponent and the floor reaction force moment vertical component,respectively, determined in S5110 and S5112, are multiplied by thepermissible range reducing rate att so as to narrow the floor reactionforce horizontal component permissible range and the floor reactionforce moment vertical component permissible range. Hereinafter, thefloor reaction force horizontal component permissible range and thefloor reaction force moment vertical component permissible rangedetermined in this S5122 will be generically referred to as final floorreaction force permissible ranges. It is a matter of course that, if thereducing rate is 1, then the final floor reaction force permissiblerange agrees with the permissible ranges of the floor reaction forcehorizontal component and the floor reaction force moment verticalcomponent determined in S5110 and S5112 (hereinafter referred tooriginal floor reaction force permissible ranges), and the originalfloor reaction force permissible ranges will not be narrowed.

FIG. 84 shows an example illustrating how the permissible range reducingrate att, the final floor reaction force permissible ranges(specifically, a floor reaction force horizontal component permissiblerange and a floor reaction force moment vertical component permissiblerange) change according to slippage determination results.

If a slippage occurs, the robot 1 may fall unless a gripping state ispromptly restored. Hence, if it is determined that a slippage hasoccurred, then the final floor reaction force permissible range shouldbe quickly narrowed. However, unduly sudden narrowing would lead to anexcessive change in acceleration of a gait with a resultant impact;therefore, a proper value that does not lead to a sudden change shouldbe set.

If it is determined that there is no longer a slippage, then the finalfloor reaction force permissible range should be quickly set back to theoriginal floor reaction force permissible range. If the final floorreaction force permissible range remains narrower, then a corrected gaitwill significantly deviate from an original gait. However, unduly suddenrestoration would lead to an excessive change in acceleration of themotion of the gait, resulting in a slippage again due to an impact;therefore, a proper value that does not cause an unduly suddenrestoration should be set.

Subsequently, the processing proceeds to S5124 wherein a modelmanipulation floor reaction force moment horizontal component, a desiredfloor reaction force moment for compliance control (a horizontalcomponent and a vertical component), a horizontal body acceleration, abody posture inclination angular acceleration, and an antiphase armswing angular acceleration are determined such that the conditions ofthe floor reaction force moment horizontal component permissible range,the floor reaction force moment vertical component permissible range,and the floor reaction force horizontal component permissible range aresatisfied, as in S2114 of FIG. 61.

Subsequently, the processing proceeds from S5126 to S5128 to carry outthe same processing as that of S2116 to S2118 of FIG. 61.

The corrected gait instantaneous value determining subroutine isimplemented as described above. Then, the processing proceeds to S2336of FIG. 77 wherein current time t is incremented by At, and returns toS2314 again to continue generating gaits.

The above is the processing of the gait generating device 100 in thefourth reference example.

As described above, in the fourth reference example, the floor reactionforce horizontal component permissible range and the floor reactionforce moment vertical component permissible range are changed accordingto a slippage determination result. Alternatively, however, only one ofthe floor reaction force horizontal component permissible range and thefloor reaction force moment vertical component permissible range may bechanged.

Generally, if the foot 22 slips parallel on a floor surface (if it slipsin a shearing direction), then the gripping force in a spin direction(yaw direction) accordingly decreases. Conversely, if the foot 22 slipsin the spin direction (yaw direction), then the foot 22 easily slipsparallel on the floor surface. Hence, narrowing (setting to zero) boththe floor reaction force horizontal component permissible range and thefloor reaction force moment vertical component permissible range wheneither slippage is detected will achieve more effective recovery fromthe slippage.

The fourth reference example has used, as the gait generating device100, the one in the aforesaid third reference example; alternatively,however, it may use the gait generating device in any one of theaforesaid first to the fourth embodiments. As described above, in thefirst to the fourth embodiments, the floor reaction force horizontalcomponent permissible range and the floor reaction force moment verticalcomponent permissible range come in two types, namely, one forsimplified model gaits and the other for gait correction (for full-modelcorrection). All these permissible ranges may be changed. Alternatively,at least the permissible range of either one for gait correction shouldbe changed according to a slippage determination result. In this case,in the aforesaid first embodiment, for example, before implementing theprocessing of the aforesaid restricting means (restriction processingunit) 211 and 230 d, the processing of S5116 to S5122 of FIG. 79 may beimplemented to set the permissible range in a variable manner. Thisconstitutes a fifth embodiment. Alternatively, in one of the aforesaidsecond to the fourth embodiments, before implementing the processing ofthe processing of the aforesaid restricting means (restrictionprocessing unit) 211 and 230 h, the processing of S5116 to S5122 of FIG.79 may be carried out to set the permissible range in a variable manner,thereby constituting the fifth embodiment.

As in the aforesaid first embodiment, the aforesaid fifth embodimentcomprised of the aforesaid first embodiment to which variable setting ofa permissible range has been applied obviously provides the embodimentsof the first to the third inventions, the fifth to the eighthinventions, and the eleventh to the thirteenth inventions in the presentinvention. In addition, the fifth embodiment also provides theembodiments of the thirty-third to the thirty-sixth inventions. Theembodiments comprised of the aforesaid second to the fourth embodimentsto which the variable setting of a permissible range has been appliedprovide embodiments of the present invention, as in the second to thefourth embodiments, and further provide the embodiments of thethirty-third to the thirty-sixth inventions.

In the fourth reference example and the fifth embodiment, as the methodfor determining slippages, any one of the following may be used inaddition to the methods described in the embodiments. Alternatively,these results may be comprehensively determined (using logicaloperations, including logical sums and products).

1) The angular velocity of the foot 22 with respect to a floor isdetermined using an angular velocity detector or the like, and if theabsolute value of this value exceeds a predetermined value, then it isdetermined that a slippage has occurred.

2) If the absolute value of a floor reaction force moment of either leg2 exceeds a predetermined value, then it is determined that a slippagehas occurred.

3) If the absolute value of a total floor reaction force moment (themoment of the resulting force of the floor reaction forces of both legs2 and 2) exceeds a predetermined value, then it is determined that aslippage has occurred.

4) In a double stance period, if the value obtained by multiplying theratio of the changing rate of a total floor reaction force moment to abody posture angular velocity error by (−1) is smaller than apredetermined value (the torsional rigidity when both legs are incontact with the ground), then it is determined that a slippage hasoccurred.

5) If the absolute values of detections values (estimated values) of anon-contact type ground velocity or angular velocity detector using avisual sensor, a spatial filter or the like, or of a contact-type groundvelocity or angular velocity detector exceed a predetermined value, thenit is determined that a slippage has occurred.

Modifications according to the aforementioned first to fifth embodimentswill now be explained.

In the aforesaid first to fifth embodiments, the compensating totalfloor reaction force moment horizontal component has been determined;alternatively, however, it may be set to zero. In this case, however,full-model correction is used merely to enhance the accuracy of adesired gait based on a simplified model, and the body postureinclination restoring effect provided by correcting a gait by using afull model is not available.

In the aforementioned first to fifth embodiments, the generation ofgaits by the simplified model 200 (the generation of simplified modelgaits) may be performed using the gait generating devices according tothe first embodiment and the second embodiment in the JapaneseUnexamined Patent Application Publication No. 5-337849 previouslyproposed by the present applicant. The correction amount by a full modelcan be reduced, making it possible to prevent a corrected gait fromsignificantly deviating from a simplified model gait.

In the aforesaid first to fifth embodiments, if the sum of thecompensating total floor reaction force moment horizontal componentMdmdxy and a model manipulation floor reaction force moment horizontalcomponent exceeds a floor reaction force moment permissible range, thena desired floor reaction force moment horizontal component forcompliance control takes an upper limit value or a lower limit value ofthe floor reaction force moment horizontal component permissible range.Alternatively, however, the desired floor reaction force momenthorizontal component for compliance control may be increased ordecreased as the sum of the compensating total floor reaction forcemoment horizontal component Mdmdxy and a model manipulation floorreaction force moment horizontal component increases or decreases evenif the sum of the compensating total floor reaction force momenthorizontal component Mdmdxy and a model manipulation floor reactionforce moment horizontal component exceeds the floor reaction forcemoment horizontal component permissible range. This is because, as thedesired floor reaction force moment horizontal component for compliancecontrol approximates to a floor reaction force moment horizontalcomponent permissible range, an actual floor reaction force momenthorizontal component controlled by the compliance control tends to besmaller than the desired value, and therefore, even if the desired floorreaction force moment horizontal component for compliance controlslightly exceeds a permissible range, it is very likely that this doesnot immediately cause a problem, such as a deteriorated intrinsic groundcontacting property of the foot 22 or floating of the sole of the foot22.

For the same reason, the floor reaction force moment horizontalcomponent permissible range may be set to exceed a permissible rangeobtained by converting the range, in which ZMP can exist and which hisrepresented by a supporting polygon (in a strict expression, thepermissible range in which actual floor reaction force points of actionexist), into moment horizontal components.

Undue dependence on the floor reaction force moment horizontal componentproduced by compliance control causes a problem, such as a deterioratedintrinsic ground contacting property of the foot 22 or floating of thesole of the foot 22, as described above. Hence, the floor reaction forcemoment horizontal component permissible range may be said to be thepermissible range of actual floor reaction force moment horizontalcomponents that posture control expects of the compliance control.

The floor reaction force moment horizontal component permissible rangemay alternatively be determined on the basis of also detected actualfloor reaction forces rather than only on the basis of gait parameters.Further, it may be also determined on the basis of detection values ofground contact regions of the foot 22, such as edge position detectionvalues on stairs.

The processing of the main flowchart may be changed so as to implementthe correction of a current time gait parameter (the correction of adesired ZMP) in S3028 of FIG. 56 of the second reference example foreach control cycle.

If a corrected gait (desired gait) considerably deviates (diverges) froman original gait, it will have excessively deviated (excessivelydiverged) by the time the gait parameter correction of the next gait isimplemented, making it difficult to generate a desired gait thatcontinuously remains stable for long periods simply by correcting gaitparameters of the next gait. This problem can be solved to a greatextent by correcting the current time gait parameter (by correcting adesired ZMP) for each control cycle.

Furthermore, depending on deviation from an original gait, a footlanding position or landing time of the current time gait may be changedfor each control cycle.

Specifically, the processing flow is changed so as to carry out theprocessing from S3020 to S3030 for each control cycle, and then inS3020, at least one of the next time's gait supporting leg coordinatesystem (the next time's gait supporting leg coordinate systemcorresponding to the next foot landing position/posture), the next butone time's gait supporting leg coordinate system (the next but onetime's gait supporting leg coordinate system corresponding to the nextbut one time foot landing position/posture), the current time gait cycle(the current time gait cycle corresponding to the next foot landingtime), and the next time gait cycle (the next time gait cyclecorresponding to the cycle of normal gait) may be changed as necessaryto reduce the correction of the current time gait parameter in S3028(the correction of the desired ZMP in particular)(that is, to maintain ahigh stability allowance of the current time gait).

Furthermore, different gait parameters from those mentioned above may bechanged.

The deviation of a corrected gait from an original gait can beestimated, using a dynamic model, primarily from a simplified model bodyposture inclination angle correcting moment Mr, a simplified modelhorizontal body position correcting moment Mp, and a simplified modelantiphase arm swing angle correcting moment Ma. Hence, based on Mr, Mpand Ma, model behavior deviations may be estimated and gait parametersmay be corrected on the basis of the estimated behavior deviations.Alternatively, the relationship between Mr, Mp and Ma and the propervalues of gait parameter correction amounts may be determined beforehandand mapped so as to determine the correction amounts of gait parametersaccording to the map on the basis of Mr, Mp and Ma.

The processing flow may be changed also for the aforesaid first to fifthembodiments.

In addition to the aforementioned conditions, other kinematic conditionsand dynamic conditions, e.g., whether joint angles exceed a permissiblerange, whether legs or the like are interfering, or whether a jointangular velocity or torque is too high, may be added to the restoringconditions described above.

Accordingly, the following may be added as one of the restoringconditions: if the processing of a main flowchart has been changed so asto implement the correction of a current time gait parameters (thecorrection of a desired ZMP or a landing position, time or the like) foreach control cycle as described above, then the value of the gaitparameter, which is changed as necessary to maintain a high stabilityallowance of a current gait, is set to a proper value (to satisfy acertain restrictive condition).

The landing position and the landing time determined (read in) at a gaitswitching point are determined in response to an instruction from ahigher control unit (mainly an instruction from a walking plandeterminer or from an operator. This is referred to as an originalrequest). Thus, the landing position and the landing time of a correctedgait should be returned to the landing position and the landing timedetermined (read in) at the gait switching point as much as possible.For this reason, the landing position and the landing time determined(read in) at the gait switching point may be stored, and the landingposition and the landing time of a corrected gait may be matched to orapproximated to the stored landing position and landing time as much aspossible. This may be added to the restoring conditions. Actually,however, the landing position and the landing time of a corrected gaitare arranged so as to gradually return, as much as possible, to thelanding position and the landing time determined (read in) at a gaitswitching point by the aforementioned restoring conditions 4, 5 and 6;therefore, it is not essential to add the above additional condition.

Another condition, in which an original request is changed in responseto a change of a situation and the gait parameter changed as necessaryto maintain a high stability allowance of a gait as described above ismatched with or approximated to, as much as possible, a gait parameterthat satisfies the changed request, may be added to the restoringconditions. In this case, the aforementioned aforementioned restoringconditions 4, 5 and 6 should be deleted.

As the method for determining a model horizontal body positionstabilization floor reaction force moment and a model body postureinclination angle stabilization floor reaction force moment that satisfythe various restoring conditions described above, a linear programming(e.g., simplex method) or a retrieval method for determining optimumvalues under restrictive conditions may be used. Alternatively, a fuzzyinference may be used.

When changing a landing position, a situation wherein obstacles in awalking environment or the like have to be taken into account isconceivable. To make it possible to cope with such a situation, acorrected gait should be determined by also adding the processing thatbelongs to the field of artificial intelligence, such as recognition ofenvironments and determination of actions.

The same applies to the method for determining a model antiphase armswing angle stabilization floor reaction force moment.

The block diagrams before and after the limiting means (the restrictionprocessing unit) in the aforementioned first to fifth embodiments may besubjected to equivalent conversion or approximate conversion as shownin, for example, PCT/JP02/13593 by the present applicant.

In this case, the value obtained by subtracting the value obtained bypassing the value, which has been obtained by dividing a horizontal bodyposition correcting model stabilization moment Mpf by h, through alow-pass filter from a corrected desired floor reaction force horizontalcomponent (a full-model floor reaction force horizontal component Ffull)corresponds to a biased estimated value destm in the above PCTapplication. Hence, for example, the integration of the gain Kc in theaforementioned second to fourth embodiments may be replaced into apositive feedback system having the first-order lag of a time constant1/Kc as a feedback element to perform the approximate conversion asshown in FIG. 85. In this example, the Mpf calculator 215 in the secondto the fourth embodiments is subjected to the approximate conversion asillustrated in the figure.

The antiphase arm swing angle correcting perturbation model moment maybe also determined by implementing the equivalent conversion orapproximate conversion in the same manner.

In the aforementioned first embodiment, for the aforesaid antiphase armswing angle correcting perturbation model moment, the processing of thefunctional block diagram shown in FIG. 86 may be carried out in place ofthe functional block diagram shown in FIG. 71. This will be explainedbelow, taking this as a sixth embodiment. In FIG. 71, the behavior of anantiphase arm swing angle correcting model has been decided bydetermining whether a floor reaction force moment vertical component,including the moment vertical component generated by a motion restoredby an antiphase arm swing angle correcting model, exceeds a floorreaction force moment vertical component permissible range. In theprocessing of the functional block diagram shown in FIG. 86, the momentvertical component generated by the motion restored by an antiphase armswing angle correcting model is ignored in determining whether the floorreaction force moment permissible range is exceeded.

The processing of the functional block diagram shown in FIG. 86 will beexplained in detail. The sum of a full-model floor reaction force momentvertical component Mfullz and a floor reaction force moment verticalcomponent perturbation amount Mpz attributable to the correction of ahorizontal body position is defined as a corrected desired floorreaction force moment vertical component without restriction Minz, and arestriction is added thereto in the same manner as that shown in FIG. 70to determine a corrected desired floor reaction force moment verticalcomponent with restriction Mltdz. The corrected desired floor reactionforce moment vertical component with restriction Mltdz is output as adesired floor reaction force moment vertical component for compliancecontrol. Furthermore, the value obtained by subtracting the correcteddesired floor reaction force moment vertical component withoutrestriction Minz from the corrected desired floor reaction force momentvertical component with restriction Mltdz, i.e., a portion Maa, which isthe portion of the corrected desired floor reaction force momentvertical component without restriction Minz that exceeds the floorreaction force moment vertical component permissible range, isdetermined. Then, based on the last time value of a correctingperturbation model antiphase arm swing angle θca, a required valueMafdmd of antiphase arm swing angle correcting model stabilizationmoment is determined according to an antiphase arm swing anglecorrecting perturbation model control law using PD control or the like,and the value (moment) obtained by subtracting the determined value fromMaa is supplied to an antiphase arm swing angle correcting perturbationmodel to obtain the correcting perturbation model antiphase arm swingangle θca.

The transfer functions from Maa to the correcting perturbation modelantiphase arm swing angle θca provide the transfer functions of alow-pass filter.

More specifically, in other words, a floor reaction force momentvertical component (a floor reaction force moment vertical componentwithout restriction) generated when the floor reaction force momentvertical component by the antiphase arm swing angle correcting model isnot canceled (excess preventing operation is not performed) is passedthrough a restricting means (saturating means) that restricts it so asnot to exceed the floor reaction force moment vertical componentpermissible range, thereby obtaining a desired floor reaction forcemoment vertical component for compliance control (a corrected desiredfloor reaction force moment vertical component with restriction Mltdz).In addition, the value obtained by passing the floor reaction forcemoment vertical component without restriction through a dead-zone meansfor determining the portion exceeding the floor reaction force momentvertical component permissible range is passed through a low-pass filter(i.e., a high-cut filter) to obtain the correcting perturbation modelantiphase arm swing angle θca.

The sixth embodiment explained above provides the embodiment of thethirty-first and the thirty-second inventions of the present invention.In this case, the floor reaction force moment vertical component in thesixth embodiment corresponds to a control object amount. The floorreaction force moment vertical component permissible range [Mzmin,Mzmax] for generating gaits (for full-model correction) in the sixthembodiment corresponds to the permissible range of a restriction objectamount. The motional component of a simplified model gait corresponds tothe provisional instantaneous value of a desired motion, and the valueobtained by correcting this in S3536 corresponds to the instantaneousvalue of the desired motion. Full models (including an antiphase armswing angle correcting perturbation model) correspond to the dynamicmodels in the inventions. And the value (Minz) obtained by adding thefloor reaction force moment vertical component Mpz resulting from thecorrection of a horizontal body position to the full-model floorreaction force moment vertical component Mfullz in the sixth embodimentcorresponds to the instantaneous value of a model restriction objectamount, and the difference between this and the desired floor reactionforce moment vertical component Mltdz for compliance control correspondsto “the deviating portion” in the thirty-first invention.

Supplementally, in the aforementioned second reference example, inaddition to the construction described in Japanese Unexamined PatentApplication Publication No. 5-337849 proposed by the present applicant,the behaviors of two motion modes having different generating ratios ofa floor reaction force horizontal component and the floor reaction forcemoment horizontal component about a desired ZMP, e.g., the bodytranslational acceleration of the body translational motion mode and thebody posture inclination angle acceleration of the body inclinationmotion mode, are determined such that the translational force horizontalcomponent of a floor reaction force does not exceed the permissiblerange of floor reaction force horizontal component, thus allowing theactual robot 1 to converge to a corrected desired gait (the gait lastlyoutput from the gait generating device 100). This means that the postureof the actual robot 1 can be stabilized.

The difference between a desired floor reaction force moment horizontalcomponent for compliance control and a model manipulation floor reactionforce moment horizontal component provides a total restoring force.

The model manipulation floor reaction force moment horizontal componentcan take any value, ignoring the range in which a ZMP can exist, so thatit is possible to generate an extremely high restoring force.

The translational force horizontal component of a floor reaction forcedoes not exceed the permissible range of a floor reaction forcehorizontal component, making it possible to prevent slippages of therobot 1.

A floor reaction force moment vertical component (a desired floorreaction force moment vertical component for compliance control) andeventually an actual floor reaction force moment vertical component donot exceed the permissible range of floor reaction force moment verticalcomponent, making it possible to effect further prevention of slippagesof the robot 1.

During a period in which a floor reaction force vertical component iszero, that is, during a period in which neither of both legs 2 and 2 isin contact with the ground, posture restoration depending on a bodyrotation motion mode is carried out without depending on the bodytranslational motion mode, so that the posture restoration iseffectively implemented without dependence on the frictional forcebetween a floor and the foot 22.

An actual floor reaction force moment can be prevented from undulyincreasing, thus making it possible to prevent or restrain theoccurrence of a problem, such as deteriorated intrinsic groundcontacting property of the foot 22 or the sole of the foot 22 floating.

A current time gait parameter is determined or changed such that a newcurrent time gait using the terminal state of a corrected gait for onestep as its initial state gradually approximates to a normal gait, thusmaking it possible to continue generating gaits with continuously(long-term) ensured stability.

In the aforementioned third reference example, as described above, anoriginal gait and a corrected gait are simultaneously generated, and thecorrected gait is corrected to stabilize the posture of the actual robot1. In addition, if there is still an allowance after generating thefloor reaction force moment (a horizontal component and a verticalcomponent) necessary for posture restoration by compliance control, thenthis allowance is used to converge to the original gait within apossible range. Hence, in addition to the advantages of the secondreference example, it is possible to generate a gait that is close tothe original gait initially set, i.e., the gait as per an initialrequest. Thus, if there is a preset travel path, significant deviationfrom the travel path can be prevented. Furthermore, a priority is givento the convergence of the body posture angle of a corrected gait to thebody posture angle of the original gait (originally determined gait)rather than to the convergence of the horizontal body position of acorrected gait to the horizontal body position of the original gait(originally determined gait), making it possible to restrain a bodyposture angle from considerably varying.

In the aforementioned first to sixth embodiments, the floor reactionforce horizontal component permissible range has been set.Alternatively, however, since a floor reaction force horizontalcomponent and the total center-of-gravity horizontal acceleration of therobot carry a proportional relationship, the total center-of-gravityhorizontal acceleration of the robot and its permissible range may beused in place of the floor reaction force horizontal component and itspermissible range in each of the aforesaid embodiments. Furthermore, aparameter related to the horizontal acceleration trajectory of a parthaving a behavior close to a total center-of-gravity horizontaltrajectory of the robot may be explicitly set. For instance, if the massof the legs 2 and 2 is sufficiently smaller than the mass of the body 3,then the body horizontal acceleration trajectory and the totalcenter-of-gravity horizontal acceleration trajectory of the robot 1 aresubstantially identical or have a proportional relationship. Therefore,the body horizontal acceleration and its permissible range may be usedin place of a floor reaction force horizontal component and itspermissible range.

Similarly, since a floor reaction force vertical component and the totalangular momentum changing rate vertical component of the robot carry aproportional relationship, the total angular momentum changing ratevertical component of the robot and its permissible range may be used inplace of the floor reaction force moment vertical component and itspermissible range in each of the aforesaid embodiments.

Moreover, when generating gaits for traveling on a slope (when movingthe robot 1 on an inclined floor surface), the floor surface parallelcomponent (the component parallel to the floor surface) of atranslational floor reaction force, that is, the permissible range of africtional force, or the permissible range of the floor surface parallelcomponent of a total center-of-gravity acceleration (this isproportional to a frictional force, provided a gravity component isexcluded) may be set in place of the floor reaction force horizontalcomponent permissible range or the permissible range of totalcenter-of-gravity acceleration horizontal component. An explanation of,for example, a case where the permissible range of a floor surfaceparallel component (frictional force) of a translational floor reactionforce is set will be given (this explanation applies also to the casewhere the permissible range of the floor surface parallel component of atotal center-of-gravity acceleration is set). For the frictional force,the relationship of Equation c72 given below holds when the inclinationangle with respect to the horizontal plane of the floor surface isdenoted by θf (defined as positive for a slope inclining forward in thedirection in which the robot 1 advances). Hence, to generate a gaitaccording to the algorithm similar to that in the aforementionedembodiment, a frictional force permissible range may be converted into afloor reaction force horizontal component permissible range by using therelationship of the Equation c72 so as to set the floor reaction forcehorizontal component permissible range. In this case, a desired floorreaction force vertical component may be used as the floor reactionforce vertical component in Equation c72.Frictional force=Floor reaction force horizontal component*cos(θf)−Floorreaction force vertical component*sin(θf)  Equation c72

In generating a gait for traveling on a slope (when moving the robot 1on an inclined floor surface), the component in the direction of floorsurface normal line of a floor reaction force moment, i.e., thepermissible range of a frictional force moment, may be set in place of afloor reaction force moment vertical component permissible range. Forexample, the relationship of Equation c73 given below holds for thefrictional force moment when the inclination angle with respect to thehorizontal plane of the floor surface is denoted by θf (defined aspositive for a slope inclining forward in the direction in which therobot 1 advances). Hence, to generate a gait according to the algorithmsimilar to that in the aforementioned embodiment, this relationship ofEquation c73 may be used to calculate the frictional force moment from afloor reaction force moment vertical component and a floor reactionforce moment horizontal component, and then the processing may bechanged so that this value does not exceed the permissible range of thefrictional force moment.Frictional force moment=Floor reaction force moment verticalcomponent*cos(θf)+Floor reaction force moment horizontalcomponent*sin(θf)  Equation c73

The two motion modes, namely, the body inclination mode and the bodytranslational mode, have been used in the aforementioned embodiment toset the floor reaction force horizontal component and the floor reactionforce moment horizontal component about a desired ZMP to proper values;however, different motion modes from them may alternatively be used. Inthis case, it is not required that one of the motion modes be a motionmode that does not generate a floor reaction force horizontal component.This is because, arbitrary floor reaction force horizontal component andfloor reaction force moment about a desired ZMP can be generated as inthe above example by any combination of modes as long as two motionmodes that generate a floor reaction force horizontal component and afloor reaction force moment about a desired ZMP at different ratios areused.

Furthermore, a motion mode other than a body posture may be used.However, a motion mode should be selected that permits generation of alarge floor reaction force horizontal component or a large floorreaction force moment about a desired ZMP with a minimum of displacementas much as possible.

For instance, a motion mode for swing right and left arms in the samerotational direction or a motion for perturbating the position of a footnot in contact with the ground (floating) may be selected. However, if afree leg trajectory is to be perturbated, the perturbation amount shouldbe reset virtually to zero by immediately before landing so as not todisturb a landing position.

Alternatively, three or more motion modes may be used.

The ratios of generating a floor reaction force horizontal component anda floor reaction force moment about a desired ZMP of at least two ofselected modes must be different from each other. Otherwise, in general,no solution of a simultaneous equation will be obtained.

In addition, it is desirable to combine, as much as possible, a motionmode that allows a sufficiently large change to take place in the floorreaction force moment about a desired ZMP without changing a floorreaction force horizontal component much, and a motion mode that allowsa sufficiently large change to take place in the floor reaction forcehorizontal component without changing a floor reaction force momentabout a desired ZMP much.

In other words, it is desirable to combine a motion mode that allows asufficiently large change to take place in an angular momentum withoutchanging a total center of gravity much and a motion mode that allows asufficiently large change to take place in the total center of gravitywithout changing the angular momentum much. This is becausedisplacements in the motion modes will be smaller.

In the aforementioned embodiments, the antiphase arm swing mode has beenused to set the floor reaction force moment vertical component to aproper value; however, other motion mode may be used. For example, asexplained about the modification of the aforementioned first referenceexample, the body yaw rotation mode may be used or the body yaw rotationmode and the antiphase arm swing mode may be used in combination.

Further, it is not required that the motion mode used to set the floorreaction force moment vertical component to a proper value be a motionmode that does not generate a floor reaction force horizontal componentand a floor reaction force moment horizontal component. For instance, amotion mode for swing a free leg back and forth may be used. This isbecause the floor reaction force horizontal component and the floorreaction force moment horizontal component generated by the motion modecan be offset by adjusting the two motion modes, namely, the bodyinclination mode and the body translational mode.

In an embodiment using the full model, the following models, in additionto the dynamic model (the model of FIG. 12) used in the aforementionedembodiments, may be used as the aforementioned simplified models.

1) A nonlinear model having mass points set on a plurality of links, asshown in FIG. 49 (multi-mass-point model)

2) Three-mass-point model disclosed in Japanese Patent Application No.2000-352011 by the present applicant

3) One-mass-point model having a mass only in the body

4) Model that ignores the moment of the inertial force generated by achange in the angular momentum about a total center of gravity

5) Separate type model that separately has a partial model representingthe relationship between a resultant force of gravity and an inertialforce (or a floor reaction force) and a body translational motion, and apartial model representing the relationship between the above resultantforce and a body rotational motion. For instance, the mass points shownin FIG. 12 constitute a partial model indicating the relationshipbetween the above resultant force and a body translational motion, andthe flywheel shown in FIG. 12 is a partial model indicating therelationship between the above resultant force and a body rotationalmotion.

However, for an embodiment in which a simplified model body postureinclination angle correcting moment is added to a simplified model, themodels of 2), 3) and 4) above cannot be used.

Preferably, a full model basically uses a dynamic model having a higherapproximation accuracy than that of a simplified model; however, adynamic model having an approximation accuracy equivalent to that of asimplified model may be used.

Furthermore, in the embodiments described above, the block diagrams, theflowcharts, the algorithms and the like may be subjected to equivalentmodifications, such as changing the order of calculation processing. Inaddition, low-pass filters may be inserted, as necessary.

The aforementioned embodiments have been explained in conjunction withbipedal mobile robots; however, the present invention can be appliedalso to one-foot or multi-leg robots having three or more legs.

INDUSTRIAL APPLICABILITY

As described above, even in a circumstance in which the frictional forcebetween a legged mobile robot, such as a bipedal mobile robot, and afloor surface is small, the present invention usefully permitsgeneration of gaits that enable the robot to smoothly travel withoutcausing a spin of the robot.

1. A gait generating device for generating a desired gait of a legged mobile robot that travels by moving a plurality of legs extended from its body, comprising: permissible range setting means for setting a permissible range of a restriction object amount, the restriction object amount being a vertical component of a floor reaction force moment or a component of the floor reaction force moment in floor surface normal line direction, or a vertical component of an angular momentum changing rate of the robot or a component of the angular momentum changing rate in floor surface normal line direction, to be applied to the robot; provisional instantaneous value determining means for determining a provisional instantaneous value of a desired motion constituting the desired gait; model calculating means for supplying at least a provisional instantaneous value of the desired motion to a dynamic model that indicates a relationship between a motion of the robot and the restriction object amount so as to determine an instantaneous value of a model restriction object amount as an output of the dynamic model; and desired instantaneous value determining means for determining an instantaneous value of a desired motion by correcting the provisional instantaneous value of the desired motion such that at least the instantaneous value of the model restriction object amount falls within the permissible range.
 2. The gait generating device of a legged mobile robot according to claim 1, wherein the desired instantaneous value determining means determines an instantaneous value of a floor reaction force moment that corresponds to a restriction object amount that substantially balances with the instantaneous value of the desired motion on the dynamic model as an instantaneous value of a desired floor reaction force moment constituting the desired gait.
 3. The gait generating device of a legged mobile robot according to claim 1, wherein the desired instantaneous value determining means comprises: a perturbation model representing a relationship between a perturbative motion of the robot and a perturbation portion of a restriction object amount; means for determining a perturbation model manipulated variable for manipulating the perturbation portion of the restriction object amount of the perturbation model on the basis of at least the instantaneous value of a model restriction object amount determined by the model calculating means and the permissible range; means for determining a correction amount of the desired motion by supplying the determined perturbation model manipulated variable to the perturbation model; and means for determining an instantaneous value of the desired motion by correcting the provisional instantaneous value of the desired motion on the basis of the correction amount.
 4. The gait generating device of a legged mobile robot according to claim 3, wherein the means for determining the perturbation model manipulated amount comprises means for determining an estimated value of the restriction object amount when it is assumed that the perturbation model manipulated amount is zero on the basis of at least an instantaneous value of a model restriction object amount determined by the model calculating means, and means for comparing the determined estimated value with the permissible range to determine a restricted restriction object amount that has been restricted to fall within the permissible range on the basis of the comparison, wherein the perturbation model manipulated variable is determined on the basis of at least the difference between the instantaneous value of the model restriction object amount determined by the model calculating means and the restricted restriction object amount.
 5. The gait generating device of a legged mobile robot according to claim 4, wherein the desired instantaneous value determining means determines an instantaneous value of a floor reaction force moment corresponding to the restricted restriction object amount as an instantaneous value of a desired floor reaction force moment constituting the desired gait.
 6. The gait generating device of a legged mobile robot according to claim 4, wherein the desired instantaneous value determining means comprises means for additionally supplying a correction amount of the desired motion to the dynamic model.
 7. The gait generating device of a legged mobile robot according to claim 6, wherein the desired instantaneous value determining means determines an instantaneous value of a floor reaction force moment corresponding to the restricted restriction object amount as an instantaneous value of a desired floor reaction force moment constituting the desired gait.
 8. The gait generating device of a legged mobile robot according to claim 3, further comprising means for determining a required value of the perturbation model manipulated variable on the basis of at least a state amount of the perturbation model, wherein the means for determining the perturbation model manipulated variable determines a perturbation model manipulated variable to be supplied to the perturbation model on the basis of at least an instantaneous value of a model restriction object amount determined by the model calculating means, the permissible range, and the required value.
 9. The gait generating device of a legged mobile robot according to claim 8, wherein the means for determining a required value of the perturbation model manipulated variable sequentially determines the required value according to a feedback control law based on a deviation between a state amount of the perturbation model and a desired value for the state amount.
 10. The gait generating device of a legged mobile robot according to claim 8, wherein the means for determining the perturbation model manipulated variable comprises means for determining an estimated value of the restriction object amount when it is assumed that the perturbation model manipulated variable has been matched with the required value on the basis of at least an instantaneous value of a model restriction object amount determined by the model calculating means and the required value, and means for comparing the determined estimated value with the permissible range to determine a restricted restriction object amount that has been restricted to fall within the permissible range on the basis of the comparison, wherein the perturbation model manipulated variable is determined on the basis of at least the difference between the instantaneous value of the model restriction object amount determined by the model calculating means and the restricted restriction object amount.
 11. The gait generating device of a legged mobile robot according to claim 10, wherein the desired instantaneous value determining means determines an instantaneous value of a floor reaction force moment corresponding to the restricted restriction object amount as an instantaneous value of a desired floor reaction force moment constituting the desired gait.
 12. The gait generating device of a legged mobile robot according to claim 10, wherein the desired instantaneous value determining means comprises means for additionally supplying a correction amount of the desired motion to the dynamic model.
 13. The gait generating device of a legged mobile robot according to claim 12, wherein the desired instantaneous value determining means determines an instantaneous value of a floor reaction force moment corresponding to the restricted restriction object amount as an instantaneous value of a desired floor reaction force moment constituting the desired gait.
 14. The gait generating device of a legged mobile robot according to claim 3, wherein the perturbation model is a model representing a relationship between a perturbative motion for perturbating a vertical component or a component in floor surface normal line direction of an angular momentum changing rate of the robot and the perturbation portion of a restriction object amount.
 15. The gait generating device of a legged mobile robot according to claim 14, wherein the perturbative motion is a perturbative motion for maintaining the center-of-gravity position of the robot substantially constant.
 16. The gait generating device of a legged mobile robot according to claim 15, wherein the perturbative motion is a perturbative motion of a body of the robot and/or an arm extended from the body.
 17. The gait generating device of a legged mobile robot according to claim 14, wherein the perturbative motion is a perturbative motion of a body of the robot and/or an arm extended from the body.
 18. A control device of a legged mobile robot for controlling an operation of the robot to make the robot follow a desired gait generated by the gait generating device of a legged mobile robot according to claim 1, comprising: slippage determining means for determining the occurrence of a slippage of the robot in operation, following the desired gait, wherein the permissible range setting means variably sets the permissible range according to a determination result of the slippage determining means.
 19. The control device of a legged mobile robot according to claim 18, wherein the slippage determining means determines the occurrence of a slippage on the basis of at least a ground speed of a distal portion of a leg in contact with the ground.
 20. The control device of a legged mobile robot according to claim 18, wherein the slippage determining means comprises means for determining an apparent spring constant of a leg on the basis of at least a temporal changing rate of an actual floor reaction force acting on the leg in contact with the ground and a ground speed of a distal portion of the leg, wherein the occurrence of a slippage is determined on the basis of at least the apparent spring constant.
 21. The control device of a legged mobile robot according to claim 18, wherein the slippage determining means determines the occurrence of a slippage on the basis of at least an actual floor reaction force acting on a leg in contact with the ground that has been passed through a band-pass filter having a frequency pass characteristic in a range near a predetermined frequency.
 22. A gait generating device for generating a desired gait of a legged mobile robot that travels by moving a plurality of legs extended from its body, comprising: permissible range setting means for setting a permissible range of a restriction object amount, the restriction object amount being a vertical component of a floor reaction force moment or a component of the floor reaction force moment in floor surface normal line direction, or a vertical component of an angular momentum changing rate of the robot or a component of the angular momentum changing rate in floor surface normal line direction, to be applied to the robot; desired floor reaction force provisional instantaneous value determining means for sequentially determining a provisional instantaneous value of at least a desired floor reaction force among a desired motion and a desired floor reaction force constituting the desired gait; first model calculating means for supplying at least a provisional instantaneous value of the desired floor reaction force to a first dynamic model that indicates a relationship between a motion of the robot and a floor reaction force so as to determine a provisional instantaneous value of a desired motion as an output of the first dynamic model; second model calculating means for supplying at least a provisional instantaneous value of the desired motion to a second dynamic model that indicates a relationship between a motion of the robot and the restriction object amount so as to determine an instantaneous value of a model restriction object amount as an output of the second dynamic model; and first model input correcting means for determining a floor reaction force moment correction amount of a desired floor reaction force such that at least the instantaneous value of the model restriction object amount falls within the permissible range, and for additionally supplying the determined floor reaction force moment correction amount to the first dynamic model, wherein a desired instantaneous value of the desired motion is determined on the basis of at least an input of the second dynamic model.
 23. The gait generating device of a legged mobile robot according to claim 22, further comprising means for determining an instantaneous value of a floor reaction force moment that substantially corresponds to the instantaneous value of the model restriction object amount output by the second dynamic model as an instantaneous value of a desired floor reaction force moment constituting the desired gait.
 24. The gait generating device of a legged mobile robot according to claim 22, wherein the first model input correcting means comprises means for estimating, on the basis of at least an instantaneous value of a model restriction object amount determined by the second model calculating means, an estimated value of an instantaneous value of a model restriction object amount output by the second dynamic model if it is assumed that at least a floor reaction force moment correction amount of the desired floor reaction force is zero, and means for comparing the estimated value of an instantaneous value of the model restriction object amount with the permissible range to determine a restricted restriction object amount that has been restricted to fall within the permissible range on the basis of the comparison, wherein the floor reaction force moment correction amount is determined on the basis of at least the difference between the instantaneous value of the model restriction object amount determined by the second model calculating means and the restricted restriction object amount.
 25. The gait generating device of a legged mobile robot according to claim 22, further comprising means for determining a required value of a floor reaction force moment correction amount of the desired floor reaction force, wherein the first model input correcting means comprises means for estimating, on the basis of at least an instantaneous value of a model restriction object amount determined by the second model calculating means and the required value, an estimated value of an instantaneous value of a model restriction object amount output by the second dynamic model if it is assumed that at least a floor reaction force moment correction amount of the desired floor reaction force is matched to the required value, and means for comparing the estimated value of an instantaneous value of the model restriction object amount with the permissible range to determine a restricted restriction object amount that has been restricted to fall within the permissible range on the basis of the comparison, wherein the floor reaction force moment correction amount is determined on the basis of at least the difference between the instantaneous value of the model restriction object amount determined by the second model calculating means and the restricted restriction object amount.
 26. The gait generating device of a legged mobile robot according to claim 25, comprising third model calculating means for supplying at least a provisional instantaneous value of the desired floor reaction force to a third dynamic model representing a relationship between a motion of the robot and a floor reaction force so as to determine a third provisional instantaneous value of a desired motion as an output of the third dynamic model, wherein the means for determining a required value of a floor reaction force moment correction amount of the desired floor reaction force determines the required value on the basis of a difference between a desired instantaneous value of the determined desired motion and a third provisional instantaneous value of the desired motion such that the difference approximates to zero.
 27. The gait generating device of a legged mobile robot according to claim 22, further comprising a second model input correcting means for determining a correction amount of the desired motion on the basis of at least an instantaneous value of a model restriction object amount determined by the second model calculating means and the permissible range, and additionally supplying the determined correction amount to the second dynamic model.
 28. The gait generating device of a legged mobile robot according to claim 27, comprising: a perturbation model representing a relationship between a perturbative motion of the robot and a perturbation portion of a restriction object amount; means for determining a manipulated variable of a floor reaction force moment on the basis of at least an instantaneous value of a model restriction object amount determined by the second model calculating means and the permissible range; and dividing means for dividing the determined manipulated variable of a floor reaction force moment into a floor reaction force moment correction amount of the desired floor reaction force to be supplied to the first dynamic model and a perturbation model manipulated variable to be supplied to the perturbation model, wherein the second model input correcting means supplies the perturbation model manipulated variable to the perturbation model so as to determine a correction amount of the desired motion.
 29. The gait generating device of a legged mobile robot according to claim 28, comprising: means for determining a required value of a manipulated variable of the floor reaction force moment on the basis of at least a state amount of the perturbation model, wherein the means for determining a manipulated variable of the floor reaction force moment determines a manipulated variable of a floor reaction force moment to be supplied to the dividing means on the basis of at least the instantaneous value of the model restriction object amount determined by the second model calculating means, the permissible range, and the required value.
 30. The gait generating device of a legged mobile robot according to claim 29, wherein the means for determining the required value of the manipulated variable of a floor reaction force moment sequentially determines the required value according to a feedback control law on the basis of a deviation between the state amount of the perturbation model and a desired value for the state amount.
 31. The gait generating device of a legged mobile robot according to claim 29, wherein the means for determining the manipulated variable of a floor reaction force moment comprises means for estimating, on the basis of at least an instantaneous value of a model restriction object amount determined by the second model calculating means and the required value, an estimated value of an instantaneous value of a model restriction object amount output by the second dynamic model if it is assumed that the perturbation model manipulated variable is matched to the required value, and means for comparing the estimated value of an instantaneous value of the model restriction object amount with the permissible range to determine a restricted restriction object amount that has been restricted to fall within the permissible range on the basis of the comparison, wherein the manipulated variable of the floor reaction force moment is determined on the basis of at least the difference between the instantaneous value of the model restriction object amount determined by the second model calculating means and the restricted restriction object amount.
 32. The gait generating device of a legged mobile robot according to claim 28, wherein the perturbation model is a model representing a relationship between a perturbative motion perturbing a component about a vertical axis or a floor surface normal line axis of an angular momentum changing rate of a robot and a perturbation portion of the restriction object amount.
 33. The gait generating device of a legged mobile robot according to claim 32, wherein the perturbative motion is a perturbative motion for maintaining the position of a center-of-gravity of the robot substantially constant.
 34. The gait generating device of a legged mobile robot according to claim 33, wherein the perturbative motion is a perturbative motion of a body of the robot and/or an arm extended from the body.
 35. The gait generating device of a legged mobile robot according to claim 32, wherein the perturbative motion is a perturbative motion of a body of the robot and/or an arm extended from the body.
 36. The gait generating device of a legged mobile robot according to claim 28, wherein the means for determining a manipulated variable of the floor reaction force moment comprises means for estimating, on the basis of at least an instantaneous value of a model restriction object amount determined by the second model calculating means, an estimated value of an instantaneous value of a model restriction object amount output by the second dynamic model if it is assumed that the perturbation model manipulated variable is zero, and means for comparing the estimated value of an instantaneous value of the model restriction object amount with the permissible range to determine a restricted restriction object amount that has been restricted to fall within the permissible range on the basis of the comparison, wherein the manipulated variable of the floor reaction force moment is determined on the basis of at least a difference between the instantaneous value of the model restriction object amount determined by the second model calculating means and the restricted restriction object amount.
 37. A control device of a legged mobile robot for controlling an operation of the robot to make the robot follow a desired gait generated by the gait generating device of a legged mobile robot according to claim 22, comprising: slippage determining means for determining the occurrence of a slippage of the robot in operation, following the desired gait, wherein the permissible range setting means variably sets the permissible range according to a determination result of the slippage determining means.
 38. The control device of a legged mobile robot according to claim 37, wherein the slippage determining means determines the occurrence of a slippage on the basis of at least a ground speed of a distal portion of a leg in contact with the ground.
 39. The control device of a legged mobile robot according to claim 37, wherein the slippage determining means comprises means for determining an apparent spring constant of a leg on the basis of at least a temporal changing rate of an actual floor reaction force acting on the leg in contact with the ground and a ground speed of a distal portion of the leg, wherein the occurrence of a slippage is determined on the basis of at least the apparent spring constant.
 40. The control device of a legged mobile robot according to claim 37, wherein the slippage determining means determines the occurrence of a slippage on the basis of at least an actual floor reaction force acting on a leg in contact with the ground that has been passed through a band-pass filter having a frequency pass characteristic in a range near a predetermined frequency.
 41. A gait generating device for generating a desired gait of a legged mobile robot that travels by moving a plurality of legs extended from its body, comprising: permissible range setting means for setting a permissible range of a restriction object amount, the restriction object amount being a vertical component of a floor reaction force moment or a component of the floor reaction force moment in floor surface normal line direction, or a vertical component of an angular momentum changing rate of the robot or a component of the angular momentum changing rate in floor surface normal line direction, to be applied to the robot; desired floor reaction force provisional instantaneous value determining means for sequentially determining a provisional instantaneous value of at least a desired floor reaction force among a desired motion and a desired floor reaction force constituting the desired gait; first model calculating means for supplying at least a provisional instantaneous value of the desired floor reaction force to a first dynamic model that indicates a relationship between a motion of the robot and a floor reaction force so as to determine a first provisional instantaneous value of a desired motion as an output of the first dynamic model; second model calculating means with restriction for supplying at least a provisional instantaneous value of the desired floor reaction force to a second dynamic model that indicates a relationship between a motion of the robot and the restriction object amount so as to determine a second provisional instantaneous value of a desired motion as an output of the second dynamic model such that an instantaneous value of a restriction object amount substantially balancing with the second provisional instantaneous value of the desired motion on the second dynamic model falls within the permissible range; manipulated variable calculating means for determining a manipulated variable of a floor reaction force moment on the basis of at least a difference between the first provisional instantaneous value and the second provisional instantaneous value of the desired motion such that the difference approximates to zero; and model input correcting means for additionally supplying the manipulated variable of the floor reaction force moment to at least one of the first dynamic model and the second dynamic model, wherein the second provisional instantaneous value of the desired motion is determined as the instantaneous value of the desired motion.
 42. The gait generating device of a legged mobile robot according to claim 41, wherein the difference between the first provisional instantaneous value and the second provisional instantaneous value of the desired motion includes a difference in a state amount about a vertical axis or about a floor surface normal line axis of the posture of a predetermined part of the robot.
 43. The gait generating device of a legged mobile robot according to claim 41, comprising means for determining an instantaneous value of a floor reaction force moment corresponding to a restriction object amount substantially balancing with an instantaneous value of the desired motion on the second dynamic model as an instantaneous value of a desired floor reaction force moment constituting the desired gait.
 44. A control device of a legged mobile robot for controlling an operation of the robot to make the robot follow a desired gait generated by the gait generating device of a legged mobile robot according to claim 41, comprising: slippage determining means for determining the occurrence of a slippage of the robot in operation, following the desired gait, wherein the permissible range setting means variably sets the permissible range according to a determination result of the slippage determining means.
 45. The control device of a legged mobile robot according to claim 44, wherein the slippage determining means determines the occurrence of a slippage on the basis of at least a ground speed of a distal portion of a leg in contact with the ground.
 46. The control device of a legged mobile robot according to claim 44, wherein the slippage determining means comprises means for determining an apparent spring constant of a leg on the basis of at least a temporal changing rate of an actual floor reaction force acting on the leg in contact with the ground and a ground speed of a distal portion of the leg, wherein the occurrence of a slippage is determined on the basis of at least the apparent spring constant.
 47. The control device of a legged mobile robot according to claim 44, wherein the slippage determining means determines the occurrence of a slippage on the basis of at least an actual floor reaction force acting on a leg in contact with the ground that has been passed through a band-pass filter having a frequency pass characteristic in a range near a predetermined frequency.
 48. A gait generating device for generating a desired gait of a legged mobile robot that travels by moving a plurality of legs extended from its body, comprising: permissible range setting means for setting a permissible range of a restriction object amount, the restriction object amount being a vertical component of a floor reaction force moment or a component of the floor reaction force moment in floor surface normal line direction, or a vertical component of an angular momentum changing rate of the robot or a component of the angular momentum changing rate in floor surface normal line direction, to be applied to the robot; desired motion provisional instantaneous value determining means for sequentially determining a provisional instantaneous value of a desired motion constituting the desired gait; model calculating means for supplying the provisional instantaneous value of the desired motion to a dynamic model representing a relationship between a motion of the robot and the restriction object amount so as to determine an instantaneous value of a model restriction object amount as an output of the dynamic model; and desired instantaneous value determining means for determining an instantaneous value of a desired motion by correcting the provisional instantaneous value of the desired motion on the basis of a portion of the model restriction object amount instantaneous value that deviates from the permissible range and that has been passed through a low-pass filter.
 49. The gait generating device of a legged mobile robot according to claim 48, wherein the desired instantaneous value determining means determines a floor reaction force moment corresponding to a difference between the model restriction object amount instantaneous value and the deviating portion as the instantaneous value of a desired floor reaction force moment constituting the desired gait.
 50. A control device of a legged mobile robot for controlling an operation of the robot to make the robot follow a desired gait generated by the gait generating device of a legged mobile robot according to claim 48, comprising: slippage determining means for determining the occurrence of a slippage of the robot in operation, following the desired gait, wherein the permissible range setting means variably sets the permissible range according to a determination result of the slippage determining means.
 51. The control device of a legged mobile robot according to claim 50, wherein the slippage determining means determines the occurrence of a slippage on the basis of at least a ground speed of a distal portion of a leg in contact with the ground.
 52. The control device of a legged mobile robot according to claim 50, wherein the slippage determining means comprises means for determining an apparent spring constant of a leg on the basis of at least a temporal changing rate of an actual floor reaction force acting on the leg in contact with the ground and a ground speed of a distal portion of the leg, wherein the occurrence of a slippage is determined on the basis of at least the apparent spring constant.
 53. The control device of a legged mobile robot according to claim 50, wherein the slippage determining means determines the occurrence of a slippage on the basis of at least an actual floor reaction force acting on a leg in contact with the ground that has been passed through a band-pass filter having a frequency pass characteristic in a range near a predetermined frequency. 